Ereignisbehandlung

Ereignisse sind eine großartige Möglichkeit, Ihr Gantt-Diagramm interaktiv und reaktionsfähig auf Benutzeraktionen zu gestalten. Wann immer ein Benutzer eine Aktion im Gantt-Diagramm ausführt, löst dhtmlxGantt ein Ereignis aus. Diese Ereignisse können verwendet werden, um die Aktion zu erkennen und spezifischen Code als Reaktion auszuführen.

Ereignisse anhängen

Um ein Ereignis einzurichten, können Sie die Methode gantt.attachEvent verwenden.

gantt.attachEvent("onTaskClick", function(id, e) {  
    alert("Sie haben gerade ein Element mit der ID=" + id + " angeklickt.");  
});

Related sample:  D'n'D Events

Hinweis:

  • Ereignisnamen sind nicht case-sensitiv.
  • Sie können mehrere Handler an ein einzelnes Ereignis zuweisen.

Ereignisse entfernen

Um einen Ereignishandler zu entfernen, ist die Methode gantt.detachEvent nützlich:

Eine allgemeine Methode zum Anhängen/Entfernen des Ereignishandlers

// Ein Ereignis anhängen  
var eventId = gantt.attachEvent("onTaskClick", function(id, e) {  
    alert("Sie haben gerade ein Element mit der ID=" + id + " angeklickt.");  
});  
// Das Ereignis entfernen  
gantt.detachEvent(eventId);

Wenn Sie alle Ereignishandler auf einmal entfernen müssen, können Sie diesen Ansatz verfolgen:

// Handler-IDs beim Anhängen von Ereignissen speichern  
var events = [];  
events.push(gantt.attachEvent("onTaskClick", function(id, e) {  
    alert("Sie haben gerade ein Element mit der ID=" + id + " angeklickt.");  
}));  
events.push(gantt.attachEvent("onTaskDblClick", function(id, e) {  
    alert("Sie haben gerade doppelt auf ein Element mit der ID=" + id + " geklickt.");  
}));  
 
// Alle gespeicherten Ereignisse entfernen  
while (events.length)  
   gantt.detachEvent(events.pop());

Überprüfung der Existenz eines Handlers

Um zu überprüfen, ob ein bestimmtes Ereignis Handler angehängt hat, können Sie die Methode gantt.checkEvent verwenden:

gantt.attachEvent("onTaskClick", function(id, e) {  
    alert("Sie haben gerade eine Aufgabe mit der ID=" + id + " angeklickt.");  
});  
 
gantt.checkEvent("onTaskClick"); // Gibt 'true' zurück

Abbrechbare Ereignisse

Ereignisse, die mit 'onBefore' beginnen, können abgebrochen werden.

Um zu verhindern, dass ein Ereignis fortgesetzt wird, geben Sie einfach false im Ereignishandler zurück.

Abbrechen des Ereignishandlers

gantt.attachEvent("onBeforeTaskChanged", function(id, mode, old_task) {  
    var task = gantt.getTask(id);  
    if (mode == gantt.config.drag_mode.progress) {  
        if (task.progress < old_task.progress) {  
            dhtmlx.message(task.text + " Fortschritt kann nicht rückgängig gemacht werden!");  
            return false;           }  
    }  
    return true;  
});

Related sample:  D'n'D Events

Zugriff auf das Gantt-Objekt innerhalb des Handlers

Wenn Sie sich innerhalb eines Ereignishandlers befinden, können Sie auf das Gantt-Objekt mit dem Schlüsselwort this verweisen.

Verweis innerhalb des Ereignishandlers

gantt.attachEvent("onTaskClick", function(id, e) {  
    parentId = this.getTask(id).parent;  
});
Zurück nach oben