如何删除addClsOnOver侦听器ExtJS

时间:2014-01-26 22:45:15

标签: javascript css button extjs hover

单击按钮时,我使用addClsOnOver更改按钮的覆盖,并且工作正常。第二次单击该按钮时,将再次调用addClsOnOver但是使用不同的类,这预计会多次发生但不幸的是,addClsOnOver创建的事件侦听器在第一次创建后不会被覆盖单击。 我现在知道我需要使用removeListener()然后addClsOnOver如果我想在第一次之后再次更改它,但不知道要放入哪个参数来移除addClsOnOver侦听器。 我敢肯定它相当简单,但我猜对了,无法在文档中找到任何可能暗示自动生成的监听器可能被调用的东西。

请帮忙吗? :)

1 个答案:

答案 0 :(得分:1)

如果未在removeListener()方法中设置fn参数,则将删除指定事件的所有侦听器。

因此,如果您没有在按钮元素上使用自己的mouseentermouseleave侦听器,则可以使用此代码删除由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