Я пытаюсь развязать все обработчики событий для всех элементов, которые являются в конкретном контейнере. Как DIV. Но те события связывались/регистрировались, не используя jQuery. Некоторые связываются ручной путь с onclick="...."
или использование регулярного собственного JavaScript.
Но когда я делаю что-то вроде этого
$('#TheDivContainer').find('div,td,tr,tbody,table').unbind();
Это, кажется, не работает. Который приводит меня полагать, что .unbind () только работает, если события были первоначально связаны jQuery.
Это верно? Есть ли другой способ развязать все события от группы элементов?
Спасибо!
Вы правы. Как и в API:
Любой обработчик, который был присоединен с помощью .bind(), может быть удален с помощью .unbind().
Unbind будет работать только с событиями, созданными jQuery, поскольку все методы, которые это делают (addEventListener и attachEvent), требуют как узел, так и имя события, и обработчик в качестве аргумент. bind
позаботится об их хранении.
Кстати, список событий в стиле DOM0 ( .foo = function (...)
может быть удален только путем установки то же свойство с чем-то еще, например null
.
Вы всегда можете сделать это:
$('#TheDivContainer').find('div,td,tr,tbody,table')
.unbind('click')
.attr('onclick', ''); // edited to change null to ''
и т. Д. для всех подходящих типов событий.