2016-05-18 7 views
0

In einem VirtualTree auszuschließen habe ich ein Click-EreignisVirtualTree Ereignis klicken - wie Kopfzelle

tree.addListener("click", function(evt) { 
    var selectedNodes = tree.getSelectedNodes(); 
    ... 
}, this); 

Jetzt habe ich Ereignisse bekommen, auch wenn der Benutzer auf Kopfzellen klickt. Wie kann ich diese ausschließen?

Meiner Meinung nach ist ein "changeSelection" -Ereignis hier nicht anwendbar, weil wenn eine Zeile ausgewählt wurde, bevor das changeSelection-Ereignis nicht ausgelöst wird.

Antwort

0

Verwenden cellTap Ereignis statt click Ereignis

tree.addListener("cellTap", function(evt) { 
    var selectedNodes = tree.getSelectedNodes(); 
     ... 
}, this); 

aber Sie haben wahrscheinlich die Benutzeroberfläche neu zu denken und nutzen die Veranstaltung ‚changeSelection‘. Warum würden Sie ein Ereignis auslösen, wenn der Knoten bereits ausgewählt ist?

+0

Sie haben Recht. changeSelection macht zunächst mehr Sinn. Was aber, wenn der Benutzer einen Dialog basierend auf der Auswahl ein zweites Mal öffnen möchte? (Er öffnete und schloss ein modales Fenster und kam zurück zum Tisch. In diesem Fall wird ein changeSelection-Ereignis nicht erneut ausgelöst, weil ein Klick die Auswahl nicht ändert.) – Raymond

+0

Sie haben auch recht! :-). Zuerst dachte ich, das ausgewählte Objekt im Baum an eine andere Ansicht zu binden, die bereits sichtbar war. Ich aktualisierte auch meine Antwort: Das 'cellTap'-Ereignis anstelle des' click'-Ereignisses sollte Ihr Problem lösen. – Adelise