Ответ 1
Вы можете вызвать .unbind()
без параметров для этого:
$('p').unbind();
Из документов:
В простейшем случае без аргументов
.unbind()
удаляются все обработчики, прикрепленные к элементам.
Я могу использовать этот код для удаления события click,
$('p').unbind('click')
но есть ли способ удалить все события?
имеет метод с именем unbindAll
в jquery?
спасибо
Вы можете вызвать .unbind()
без параметров для этого:
$('p').unbind();
Из документов:
В простейшем случае без аргументов
.unbind()
удаляются все обработчики, прикрепленные к элементам.
Как и в jQuery 1.7, off()
и on()
являются предпочтительными способами привязки и unbind обработчики событий.
Итак, чтобы удалить все обработчики из элемента, используйте это:
$('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");
});
Также смотрите, как сохранить события, которые вы отключили в этот вопрос.