Aktualisiert Nullorados Lösung auf v3.2.0:
Seit Version 3 (derzeit 3.2.0) scheint es ein etwas anderes Stück Code zu geben, das die Klickereignisse verwaltet. Ein guter Weg, um es zu lösen scheint wie folgt:
Öffnen Sie fullcalendar.js, suchen Sie nach etwas wie "bindSegHandlersToEl" und Sie werden auf einen Code stoßen, der wie folgt aussieht:
bindSegHandlersToEl: function(el) {
this.bindSegHandlerToEl(el, 'touchstart', this.handleSegTouchStart);
this.bindSegHandlerToEl(el, 'mouseenter', this.handleSegMouseover);
this.bindSegHandlerToEl(el, 'mouseleave', this.handleSegMouseout);
this.bindSegHandlerToEl(el, 'mousedown', this.handleSegMousedown);
this.bindSegHandlerToEl(el, 'click', this.handleSegClick);
},
Fügen Sie in der oben gezeigten Funktion diese Zeile hinzu, um einen Doppelklick-Handler zu erstellen:
this.bindSegHandlerToEl(el, 'dblclick', this.handleSegDoubleClick);
Suchen Sie danach nach "handleSegClick" ein paar Zeilen unterhalb der Funktion. Sie werden dies finden:
handleSegClick: function(seg, ev) {
var res = this.view.publiclyTrigger('eventClick', seg.el[0], seg.event, ev); // can return `false` to cancel
if (res === false) {
ev.preventDefault();
}
},
Kopieren und umbenennen:
- "handleSegClick" zu "handleSegDoubleClick"
- "eventClick" zu "eventDoubleClick"
Das Ergebnis ist folgendes:
handleSegDoubleClick: function(seg, ev) {
var res = this.view.publiclyTrigger('eventDoubleClick', seg.el[0], seg.event, ev); // can return `false` to cancel
if (res === false) {
ev.preventDefault();
}
},
Gehen Sie schließlich zu Ihrem Fullcalendar-Initialisierungsobjekt und geben Sie an:
eventDoubleClick: function(calEvent, jsEvent, view) {
alert('Event: ' + calEvent.title);
}
Funktioniert in Chrome und IE11.