Удалить функцию обработчика событий, добавленную другой функцией - PullRequest
0 голосов
/ 13 декабря 2011

В настоящее время я пишу пользовательский класс контекстного меню, который в основном использует jQuery.

Мы вызываем функцию, чтобы назначить контекстное меню определенному элементу в DOM.Функция assign добавляет необходимую разметку в DOM, а затем добавляет поддержку клавиатуры, добавляя функцию-обработчик в метод $(document).keydown().

Как только кто-то нажимает на сам документ, контекстное меню удаляется.из DOM.Если пользователь затем снова нажимает на элемент, мы снова добавляем разметку в DOM и переназначаем функцию обработчика.

Проблема, с которой я сталкиваюсь, заключается в том, что обработчики событий добавляются каждый раз, когда пользовательнажимает на элемент.Есть ли простой способ с помощью jQuery удалить обработчик, назначенный на $(document).keydown() с помощью функции присвоения only ?

В моем скрипте есть другие функции, которые также добавляют прослушиватели для $(document).keydown()событие, и я не хочу удалять все эти функции - только те, которые добавлены сценарием назначения контекстного меню.Это возможно с jQuery?

1 Ответ

1 голос
/ 13 декабря 2011

I думаю on и off, использующие имена / пространства имен для изоляции обработчиков, должны работать.

http://api.jquery.com/on/

...