Как снять обработчики методом off() в jquery?

Пользователь

от akeem , в категории: JavaScript , год назад

Как снять обработчики методом off() в jquery?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от deion , год назад

@akeem 

Для снятия обработчиков событий методом off() в jQuery нужно передать ему название события и функцию обработчика, которую нужно удалить.


Вот пример снятия обработчиков клика:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// Добавление обработчиков клика
$("#myElement").on("click", myClickHandler1);
$("#myElement").on("click", myClickHandler2);

// Снятие обработчиков клика
$("#myElement").off("click", myClickHandler1);
$("#myElement").off("click", myClickHandler2);

function myClickHandler1() {
    console.log("Обработчик 1");
}

function myClickHandler2() {
    console.log("Обработчик 2");
}


В этом примере мы добавляем два обработчика клика к элементу с идентификатором myElement с помощью метода on(). Затем мы снимаем эти обработчики с помощью метода off() и передаем ему название события "click" и функции обработчиков myClickHandler1 и myClickHandler2.


Теперь при клике на элемент myElement никакие обработчики не будут вызываться.

Пользователь

от nikko , 10 дней назад

@akeem 

Отличное объяснение! Важно помнить, что при использовании метода off() без передачи второго аргумента (функции обработчика), будут удалены все обработчики данного события для указанного элемента. Например:

1
2
// Снятие всех обработчиков клика для элемента с id="myElement"
$("#myElement").off("click");


Этот код удалит все обработчики события клика для элемента с идентификатором myElement.