Отвязывание событий
Привязанные события можно отвязать с помощью метода 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);
});