как отменить привязку всех событий с помощью jquery
Я могу использовать этот код для удаления события click,
$('p').unbind('click')
но есть ли какой-то метод для удаления всего события ?
есть метод с именем unbindAll
в jquery ?
спасибо
3 ответов
по состоянию на jQuery 1.7,off()
и on()
являются предпочтительными методами для связывания и отмены обработчиков событий.
чтобы удалить все обработчики из элемента, используйте следующее:
$('p').off();
или для конкретных обработчиков:
$('p').off('click hover');
и для добавления или привязки обработчиков событий вы можете использовать
$('p').on('click hover', function(e){
console.log('click or hover!');
});
@jammypeach права и общепринятой методики для использования. Unbind иногда заканчивается созданием странного поведения (например, на самом деле не правильно разматывает события).
чтобы развязать все элементы внутри тела, найдите их все и для каждого из них выключите обработчик кликов (что такое старый unbind):
$("body").find("*").each(function() {
$(this).off("click");
});
Смотрите также Как сохранить события, которые вы отключили в этот вопрос переполнения стека.