2011-12-08 21 views
5

Sto avendo difficoltà a ottenere questo lavoro:ExtJS rimuovere ascoltatore

var fn = function(){}; 

Ext.select('ul > li').on('click',fn); 
// works 

Ext.select('ul > li').un('click',fn); 
//doesn't work 

'un'/'removeListener' non funziona. Apprezzo qualsiasi aiuto!

risposta

12

Per impostazione predefinita, Ext.select crea un flyweight object, che non ricorda i listener di eventi. Pertanto, non possono essere rimossi in seguito.

È necessario creare vere e proprie Ext.Element s impostando il secondo parametro di true:

var fn = function(){}; 

Ext.select('ul > li', true).on('click',fn); 

Ext.select('ul > li', true).un('click',fn); 

Purtroppo, la documentazione non sono molto chiari su questo.

+0

Questo ha aiutato. Grazie! –