Сколько способов удалить / уничтожить обработчик событий в jquery?

Я просматриваю плагин, который написал кто-то другой, и по какой-то причине все мои обработчики событий щелчка уничтожены. Я просматриваю код, и есть несколько вариантов использования отмены привязки, которые я закомментировал, чтобы определить, вызывает ли она проблему. К сожалению, этого недостаточно, поэтому мне интересно, есть ли другие способы удалить / уничтожить обработчики событий?

Спасибо!


person Steven Cheng    schedule 08.07.2010    source источник
comment
Вы можете прочитать stackoverflow.com/questions/209029/   -  person Justin Ethier    schedule 08.07.2010
comment
Спасибо за ссылку ... может быть, я что-то упускаю, но разве выше не говорится об использовании для отмены привязки? Я закомментировал все случаи отмены привязки, и все равно не повезло.   -  person Steven Cheng    schedule 08.07.2010
comment
есть ли stopPropagation (); (или вернуть false;), что мешает ему добраться до ваших обработчиков?   -  person Matt Evanoff    schedule 08.07.2010
comment
к сожалению, нет stopPropagtion ... некоторые использования return false, но они, похоже, не мешают.   -  person Steven Cheng    schedule 08.07.2010


Ответы (1)


Существует .unbind(), который отменяет привязку события коллекции один раз, или .die(), который является противоположностью .live(), что означает, что он отменяет привязку события коллекции, установленного в данный момент, и любых событий, которые будут присоединены в будущем.

person Michal    schedule 08.07.2010
comment
Выполняете ли вы какие-либо манипуляции с DOM для элементов с помощью событий .click ()? Если вы используете .remove (), то обработчики событий не сохраняются. Если вы используете .detach (), вам нужно убедиться, что вы кешируете удаленные элементы. - person Michal; 08.07.2010
comment
Я не выполняю никаких прямых манипуляций с DOM в моем собственном коде, однако, когда я выполняю $ ($. Plugin) .remove (), то это происходит при удалении моих событий щелчка. - person Steven Cheng; 08.07.2010