2011-12-08 12 views
5

estoy teniendo dificultades para conseguir que esto funcione:ExtJS eliminar oyente

var fn = function(){}; 

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

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

'un'/'removeListener' no funciona. Apreciar cualquier ayuda!

Respuesta

12

De forma predeterminada, Ext.select crea un flyweight object, que no recuerda los detectores de eventos. Por lo tanto, no se pueden eliminar más tarde.

Es necesario crear verdaderos Ext.Element s estableciendo el segundo parámetro a true:

var fn = function(){}; 

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

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

Por desgracia, los documentos no son muy claros acerca de esto.

+0

Eso ayudó. ¡Gracias! –