2014-01-26 4 views
2

Когда нажата кнопка, я использую addClsOnOver, чтобы изменить над cls кнопки, и она отлично работает. Во второй раз, когда нажата кнопка, addClsOnOver вызывается снова, но с другим классом, и это, как ожидается, произойдет несколько раз, но, к сожалению, прослушиватели событий, созданные addClsOnOver, не были переписаны после первого щелчка. Теперь я знаю, что мне нужно использовать removeListener(), а затем addClsOnOver, если я хочу изменить его снова после первого раза, но не знаю, какие параметры нужно положить в него, чтобы удалить слушателя addClsOnOver. Я уверен, что он довольно прост, но у меня нет догадок atm и не могу найти что-либо в документах, которые могут подсказать, что может быть вызван автоматически сгенерированный слушатель.Как удалить addClsOnOver listener ExtJS

Помогите, пожалуйста? :)

ответ

1

Если вы не установили параметр fn в методе removeListener(), все слушатели для указанного события будут удалены.

Так что, если вы не используете собственные слушатель для mouseenter и mouseleave на кнопку элемент можно использовать для удаления слушателей seted по 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

+0

чувак, большое спасибо! Сохранял мне столетие работы <3 – Dayynissh

Смежные вопросы