Gibt es eine Möglichkeit, überlappende Ereignisse in jQuery FullCalendar zu verhindern?Gibt es eine Möglichkeit, überlappende Ereignisse in jQuery FullCalendar zu verhindern?
Antwort
allowCalEventOverlap: [boolean | Standardwert: false] - Gibt an, ob der Kalender Ereignisse überlappt. Ereignisse werden bei Bedarf verschoben oder in der Größe geändert, wenn sie an einen Ort gezogen oder deren Größe geändert wird, der ein anderes Kalenderereignis überlappt.
ist das wonach Sie gesucht haben?
Ich habe eine Funktion gemacht, die überprüft, ob das gegebene Ereignis andere überlappt oder nicht. Gibt "true" zurück, wenn das Ereignis sich überlagert, andernfalls "false".
function isOverlapping(event){
var array = calendar.fullCalendar('clientEvents');
for(i in array){
if(array[i].id != event.id){
if(!(Date(array[i].start) >= Date(event.end) || Date(array[i].end) <= Date(event.start))){
return true;
}
}
}
return false;
}
Sie können es beim Löschen oder Ändern der Größe und Ereignis und wenn das Ereignis überlappt andere Verwendung der revertFunc, die in den eventDrop und eventResize Rückrufe oder brechen Sie die Erstellung eines Ereignisses in der Auswahl Rückruf empfangen wird. Um es in der Auswahl Rückruf zu verwenden, um ein dummie Ereignis erstellen:
var event = new Object();
event.start = start;
event.end = end;
Es ist wirklich großartig! Es wäre noch schneller, wenn das Array mit 'view.start' und' view.end' 'filter'ed ist. – Thiru
Dies könnte auch helfen, Sonderfall, zeigt aber immer noch, wie man eine Lösung findet: http: // stackoverflow. com/a/29832834/1066234 –
Dies scheint nicht mit dem neuesten Vollkalender zu arbeiten, habe ich stattdessen verwendet: http://StackOverflow.com/a/15804896/1066234 –
Gleiche wie ecruz Antwort aber mit Logik, die besser für mich gearbeitet.
function isOverlapping(event){
// "calendar" on line below should ref the element on which fc has been called
var array = calendar.fullCalendar('clientEvents');
for(i in array){
if (event.end >= array[i].start && event.start <= array[i].end){
return true;
}
}
return false;
}
eventResize: function (event, dayDelta, minuteDelta, revertFunc, jsEvent, ui, view) {
var start = new Date(event.start);
var end = new Date(event.end);
var events = event.source.events;
for (var i = 0; i < events.length; i++) {
var someEvent = events[i];
if (someEvent._id == event._id)
{
continue;
}
var seStart = new Date(someEvent.start);
var seEnd = new Date(someEvent.end);
if ((start < seEnd) && (seStart < end)) {// dates overlap
revertFunc();
}
}
},
Das ist nur der visuelle Aspekt :( –
Gleiche wie Matthew Webb aber da manchmal für mich gearbeitet nach meiner Enddatum war null, als ich bis zu einem gewissen Zeitfenster das Ereignis aus Allday ziehen
function isOverlapping(event) {
var arrCalEvents = $('#' + g_str_FullCalenderID).fullCalendar('clientEvents');
for (i in arrCalEvents) {
if (arrCalEvents[i].id != event.id) {
if ((event.end >= arrCalEvents[i].start && event.start <= arrCalEvents[i].end) || (event.end == null && (event.start >= arrCalEvents[i].start && event.start <= arrCalEvents[i].end))) {//!(Date(arrCalEvents[i].start) >= Date(event.end) || Date(arrCalEvents[i].end) <= Date(event.start))
return true;
}
}
}
return false;
}
Und wie benutze ich das? Ich las ecruz Details, ich benutzte es in eventDrop, aber hat nicht funktioniert. – machineaddict
@machineaddict: Sie könnten es auch in eventDrop verwenden wie in eventResize.Es wäre einfacher zu helfen, wenn Sie Ihren Code posten. –
das ist mein Code http://pastebin.com/8jyQwpbH. Wie es jetzt ist, funktioniert sehr gut, außer ich kann Ereignisse haben, die sind Überlappend. – machineaddict
Ich bin mit Version 2.11 von Fullcalendar und ich gemacht einige Änderung Code von ecruz posted:
function isOverlapping(event){
var array = calendar.fullCalendar('clientEvents');
for(i in array){
if(array[i]._id != event._id){
if(!(array[i].start.format() >= event.end.format() || array[i].end.format() <= event.start.format())){
return true;
}
}
}
return false;
}
und das ist, wie ich die Überlappung zu verhindern verwenden:
$('#calendar').fullCalendar({
...
eventDrop: function(event, delta, revertFunc) {
if (isOverlapping(event)) {
revertFunc();
}
},
...
});
Ab Version 2.20 diese Änderung durch Standard ...
eingebaut wurdeVerwendung
eventOverlap: false
Willst du mir bitte sagen, wo zu setze den Code "eventOverlap: false" –
nur diese versuchen, funktioniert gut für mich. ... https://fullcalendar.io/docs/event_ui/eventOverlap/
eventOverlap: function(stillEvent, movingEvent) {
return stillEvent.allDay && movingEvent.allDay;
}
Gerade
eventOverlap: false
als eine Ihrer Optionen außerhalb des Events Element hinzufügen.
Sie können auch die Option hinzufügen
overlap
auf ein einziges Ereignis, das die eventOverlap auf diesem einzelnen Fall wird außer Kraft setzen.
events: [
{
title : 'event1',
start : '2017-05-27'
},
{
title : 'event2',
start : '2017-05-28',
end : '2017-05-29'
},
{
title : 'event3',
start : '2017-05-30T12:30:00',
allDay : false, // will make the time show
draggable: true,
editable: true,
overlap: true,
},
{
title : 'event3',
start : '2017-05-30T09:30:00',
allDay : false, // will make the time show
draggable: true,
editable: true,
}
],
eventOverlap: false
- 1. verhindern Ereignisse für HTML-Elemente überlappende Brennen
- 2. Gibt es eine Möglichkeit, die überlappende Instanzentscheidung zu verfolgen?
- 3. Ereignisse in FullCalendar
- 4. Gibt es eine Möglichkeit, IIs-Anwendungspool-Ereignisse zu abonnieren?
- 5. html5: Gibt es eine Möglichkeit zu verhindern, Kinder behindern Drag-Ereignisse
- 6. Gibt es eine Möglichkeit, eine Funktion in jQuery zu deaktivieren?
- 7. Gibt es eine Möglichkeit zu verhindern, dass UIImagePickerController Statusleiste ändern?
- 8. Gibt es eine Möglichkeit, das Laden von Bildern in einem vereinheitlichten jQuery-HTML-Fragment zu verhindern
- 9. FullCalendar jquery json Ereignisse MySQL Problem
- 10. Gibt es eine Möglichkeit, in jQuery zu verschlüsseln?
- 11. Andere Monatsereignisse durch Rendern in jQuery FullCalendar verhindern
- 12. fullcalendar Ereignisse dynamisch hinzufügen
- 13. Best Practice für ActionScript 2-Ereignisse - Gibt es eine Möglichkeit, ActionScript 3-ähnliche Ereignisse zu simulieren?
- 14. Gibt es eine Möglichkeit, Google Maps-Ereignisse manuell auszulösen?
- 15. Gibt es eine Möglichkeit zu verhindern, Asciidoc eine Datei Linke in einen tatsächlichen Link zu konvertieren?
- 16. Gibt es eine clevere Möglichkeit, überlappende Pfade in Python zu kombinieren?
- 17. Gibt es eine Möglichkeit, dieses JQuery-Karussell effizienter zu machen?
- 18. Wer benutzt yui Logger um yui Ereignisse zu verfolgen? Gibt es eine Möglichkeit, es zu filtern?
- 19. Gibt es eine gute Möglichkeit, jQuery-Code zu validieren?
- 20. Gibt es eine Möglichkeit, jQuery-Ausgabe * tatsächliches Markup * zu machen?
- 21. Gibt es eine Möglichkeit, jQuery AJAX Upload-Fortschritt zu erhalten?
- 22. jQuery verhindern andere Ereignisse nach einem Klick
- 23. jQuery Fullcalendar zu Persisch
- 24. Überlappende asynchrone Codeausführung verhindern
- 25. WPF: Gibt es eine Möglichkeit, gewöhnliche Mausereignisse zu "routen", um Ereignisse in Windows 7 zu berühren
- 26. Gibt es eine Möglichkeit, eine lokale Niederlassung unveränderlich zu machen?
- 27. gibt es eine Möglichkeit zu verhindern, dass HTML accesskey = "" aktiviert wird?
- 28. Gibt es eine Möglichkeit, das Senden von Formularen in MVC 5 zu verhindern?
- 29. Python: Gibt es eine Möglichkeit, eine automatische Konvertierung von int zu long int zu verhindern?
- 30. fullCalendar V2 Hintergrund Ereignisse Titel
Ich denke, das ist für jQuery Week Calendar;) Es funktioniert nicht mit jQuery FullCalendar. – user267637
haha yeah dachte nur das gleiche, sorry. vielleicht ist deine Antwort hier drin; http://code.google.com/p/fullcalendar/issues/detail?id=218 – Eggie