Metod off
Metod off omogućava da se odveže obrađivač
dogadjaja od elementa. Da bi se vezao obrađivač
može se koristiti metod
off.
Sintaksa
Ovako uklanjamo obrađivač događaja sa elementa,
kao prvi parametar u obliku stringa
prosledjuje se jedan ili više događaja razdvojenih
razmakom, drugim - prosledjujemo dodatni
filtrirajući selektor potomaka unutar elementa
(on mora da se poklapa sa onim što smo prosledili u
metod on, kada smo prikačivali
obrađivač). Da biste uklonili sva delegirana događaja,
prosledite vrednost '**'. Drugi parametar
nije obavezan. Trećim prosledjujemo funkciju-obrađivač
(koju smo prikačili), u koju se prosledjuje objekat
dogadjaja ili prosledimo false:
$(selektor).off(dogadjaji, [selektor], funkcija-obrađivač(objekat dogadjaja));
Možemo koristiti metod off drugačije,
onda se u prvi parametar prosledjuje
objekat JavaScript, gde su ključevi - tip događaja, a
vrednosti - funkcije-obrađivači, koje smo dodali
elementu:
$(selektor).off({'tip dogadjaja': handler}, [selektor]);
Možemo jednostavno proslediti jedan parametar u obliku
objekta jQuery.Event:
$(selektor).off(dogadjaj);
Ako se metodu ne proslede parametri, onda ćemo odvezati od elementa sve prikačene obrađivače:
$(selektor).off();
Primer
Hajde da paragrafima dodamo funkciju-obrađivač
testFunc. Ali odmah ćemo ukloniti obrađivač sa
drugog paragrafa, tako da klik na drugi paragraf neće
nivod čemu dovesti (ako pak zakomentarišemo poslednju
liniju koda, videćemo kako se dogadjaj aktivira i
pri kliku na drugi paragraf):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // dodajemo obrađivač
$('#test2').on('click', {text: 'bbb'}, testFunc); // dodajemo obrađivač
$('#test2').off('click', testFunc); // uklanjamo obrađivač