ExtJS删除监听器

时间:2011-12-08 13:04:45

标签: javascript-events extjs extjs4

我很难让这个工作:

var fn = function(){};

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

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

'un'/'removeListener'不起作用。感谢任何帮助!

1 个答案:

答案 0 :(得分:12)

默认情况下,Ext.select会创建flyweight object,但不记得事件侦听器。因此,以后不能删除它们。

您需要通过将第二个参数设置为Ext.Element来创建真实true

var fn = function(){};

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

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

不幸的是,文档对此并不十分清楚。