如何删除 addClsOnOver 监听器 ExtJS
Posted
技术标签:
【中文标题】如何删除 addClsOnOver 监听器 ExtJS【英文标题】:How to remove addClsOnOver listener ExtJS 【发布时间】:2014-02-17 16:00:21 【问题描述】:当一个按钮被点击时,我使用addClsOnOver
来改变按钮的over cls,它工作正常。第二次单击按钮时,再次调用 addClsOnOver
但使用不同的类,这预计会发生多次,但不幸的是,addClsOnOver
创建的事件侦听器在第一次单击后不会被覆盖。
我现在知道我需要使用removeListener()
然后addClsOnOver
如果我想在第一次之后再次更改它,但不知道要放入什么参数来删除addClsOnOver
侦听器。
我确信它相当简单,但我无法猜测 atm 并且无法在文档中找到任何可能暗示自动生成的侦听器可能被调用的内容。
请帮忙? :)
【问题讨论】:
【参考方案1】:如果你没有在removeListener()
方法中设置fn参数,指定事件的所有监听器都会被移除。
因此,如果您不使用自己的侦听器来处理按钮元素上的mouseenter
和mouseleave
,您可以使用此代码删除由addClsOnOver()
方法设置的侦听器:
// use el.dom as scope because it is used el.hover method when listeners were created
el.removeListener('mouseenter', null, el.dom);
el.removeListener('mouseleave', null, el.dom);
举个例子:https://fiddle.sencha.com/#fiddle/30d
【讨论】:
老兄,非常感谢!为我节省了一个世纪的工作以上是关于如何删除 addClsOnOver 监听器 ExtJS的主要内容,如果未能解决你的问题,请参考以下文章
ExtJS 下拉框监听事件日期选择器监听事件实现动态给items添加删除数据