2011-12-08 21 views
5

mam trudności z dostaniem tej pracy:ExtJS usunąć słuchacza

var fn = function(){}; 

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

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

'un'/'removeListener' nie działa. Doceniamy każdą pomoc!

Odpowiedz

12

Domyślnie Ext.select tworzy flyweight object, który nie zapamiętuje detektorów zdarzeń. W związku z tym nie można ich później usunąć.

Trzeba stworzyć prawdziwe Ext.Element s ustawiając drugi parametr do true:

var fn = function(){}; 

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

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

Niestety docs nie są bardzo jasne w tej sprawie.

+0

To pomogło. Dzięki! –