Метод off
Методот off овозможува да се одврзе обработувачот
на настани од елемент. За да се приврзе обработувач
може да се користи методот
off.
Синтакса
Вака го отстрануваме обработувачот на настани од елемент,
како прв параметар во вид на низа
се пренесува еден или повеќе настани разделени
со празно место, второ - пренесуваме дополнителен
филтрирачки селектор на потомци внатре во елементот
(тој треба да се совпаѓа со оној што го пренесувавме во
методот on, кога го прикрепuvavme
обработувачот). За да се отстранат сите делегирани настани,
пренесете ја вредноста '**'. Вториот параметар
не е задолжителен. Трет го пренесуваме функцијата-обработувач
(која ја прикрепивme), во која се пренесува објект
на настан или пренесуваме false:
$(селектор).off(настани, [селектор], функција-обработувач(објект на настан));
Може да се користи методот off на друг начин,
тогаш како прв параметар се пренесува
JavaScript објект, каде клучеви - тип на настан, а
вредности - функции-обработувачи, кои ги додадовме на
елементот:
$(селектор).off({'тип на настан': handler}, [селектор]);
Можеме едноставно да пренесеме еден параметар во вид на
објект jQuery.Event:
$(селектор).off(настан);
Ако не се пренесат параметри на методот, тогаш ќе ги одврземе од елементот сите прикрепени обработувачи:
$(селектор).off();
Пример
Ајде на параграфите да додадеме функција-обработувач
testFunc. Но веднаш да го отстраниме обработувачот од
вториот параграф, т.о. клик на вториот параграф нема да
доведе до ништо (ако ја коментираме последната
линија код, ќе видиме како настанот се активира и
при клик на вториот параграф):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // додаваме обработувач
$('#test2').on('click', {text: 'bbb'}, testFunc); // додаваме обработувач
$('#test2').off('click', testFunc); // отстрануваме обработувач