我添加了一个类似的事件:
this.getLetters().element.on({
tap: me.lettersTap,
delegate: 'span.letter-hidden'
});
基于用户交互,我正在为这些添加另一个类 元素,所以它将是:
<span class="letter-hidden new_class">
我想基于“new_class”删除事件处理程序,但不知道如何。 我尝试过:
questionController.getLetters().element.un({
tap: questionController.lettersTap,
delegate: 'span.new_class',
scope: questionController
});
但它不起作用,如果我在上面的代码中用letter-hidden替换“new_class”,我可以删除它,所以我想如果使用相同的类就可以删除它,这在文档中没有提到。我做错了什么,替代方案会很好......谢谢。
答案 0 :(得分:2)
您使用了委托,因此在尝试删除委托时使用完全相同非常重要。否则,ExtJS必须指望它是一个不同的元素,这是一种正确的行为。
这是注册听众的检查方式:
(registered.fn === remove.fn &&
registered.scope === remove.scope &&
registered.delegate === remove.delegate &&
registered.order === remove.order)
所以不,没有替代方法。您必须使用与注册时相同的属性取消注册。
注意:Sencha不会使用您的属性在DOM中进行查询 在oberservalbe侦听器集合中查找侦听器 注册时就像您递交注销的那个。