【问题标题】:How to remove addClsOnOver listener ExtJS如何删除 addClsOnOver 监听器 ExtJS
【发布时间】:2014-02-17 16:00:21
【问题描述】:

当一个按钮被点击时,我使用addClsOnOver 来改变按钮的over cls,它工作正常。第二次单击按钮时,再次调用 addClsOnOver 但使用不同的类,这预计会发生多次,但不幸的是,addClsOnOver 创建的事件侦听器在第一次单击后不会被覆盖。 我现在知道我需要使用removeListener() 然后addClsOnOver 如果我想在第一次之后再次更改它,但不知道要放入什么参数来删除addClsOnOver 侦听器。 我确信它相当简单,但我无法猜测 atm 并且无法在文档中找到任何可能暗示自动生成的侦听器可能被调用的内容。

请帮忙? :)

【问题讨论】:

    标签: javascript css button extjs hover


    【解决方案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

    【讨论】:

    • 老兄,非常感谢!为我节省了一个世纪的工作
    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 2016-01-23
    • 2019-02-05
    • 2013-06-18
    • 1970-01-01
    • 2012-01-22
    • 2021-01-11
    相关资源
    最近更新 更多