Отвязывание событий
Привязанные события можно отвязать с помощью метода unbind
. Он первым параметром принимает название события click
, вторым имя ранее привязанной функции, которую следует отвязать.
Давайте сделаем так, чтобы по клику на li
в конец добавлялся восклицательный знак, но только по первому клику. Для этого после срабатывания клика отвяжем от этого li
функцию добавления, назовем ее func
с помощью unbind
:
<ul>
<li>пункт 1</li>
<li>пункт 2</li>
<li>пункт 3</li>
</ul>
<script>
$('li').click(func);
function func() {
$(this).append('!');
$(this).unbind('click', func);
}
</script>
Функцию можно не выносить отдельно, просто дать ей имя прямо на месте:
<ul>
<li>пункт 1</li>
<li>пункт 2</li>
<li>пункт 3</li>
</ul>
<script>
$('li').click(function func() {
$(this).append('!');
$(this).unbind('click', func);
});
</script>
Метод off
Отвязывание событий, привязанных через on
, производится с помощью метода off
. Первым параметром он принимает тип события click
, а вторым имя функции которую следует отвязать.
Давайте сделаем так, чтобы после первого клика по li
, событие от нее отвязывалось:
$('li').on('click', function func() {
$(this).append('!');
$(this).off('click', func);
});