Metóda off
Metóda off umožňuje odpojiť obslužnú funkciu
udalostí od prvku. Na pripojenie obslužnej funkcie
možete použiť metódu
off.
Syntax
Takto odstraňujeme obslužnú funkciu udalostí z prvku,
ako prvý parameter sa v reťazci odovzdáva jedna
alebo viac udalostí oddelených medzerami, druhým -
odovzdáme dodatočný filtrujúci selektor potomkov
vo vnútri prvku (mal by zodpovedať tomu, čo sme
odovzdali v metóde on pri pripájaní
obslužnej funkcie). Na odstránenie všetkých
delegovaných udalostí odovzdajte hodnotu '**'.
Druhý parameter je voliteľný. Tretím odovzdávame
obslužnú funkciu (ktorú sme pripojili), do ktorej
sa odovzdáva objekt udalosti alebo odovzdáme
false:
$(selektor).off(udalosti, [selektor], obslužná funkcia(objekt udalosti));
Môžeme použiť metódu off inak,
vtedy sa ako prvý parameter odovzdáva
objekt JavaScript, kde kľúče sú typ udalosti a
hodnoty sú obslužné funkcie, ktoré sme pridali k
prvku:
$(selektor).off({'typ udalosti': handler}, [selektor]);
Môžeme jednoducho odovzdať jeden parameter v podobe
objektu jQuery.Event:
$(selektor).off(udalosť);
Ak metóde neodovzdáme parametre, tak odpojíme od prvku všetky pripojené obslužné funkcie:
$(selektor).off();
Príklad
Pridajme k odsekom obslužnú funkciu
testFunc. Ale hneď odstráňme obslužnú
funkciu od druhého odseku, tým pádom kliknutie
na druhý odsek nepovedie k ničomu (ak zakomentujeme
posledný riadok kódu, uvidíme, ako udalosť funguje
a pri kliknutí na druhý odsek):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // pridáme obslužnú funkciu
$('#test2').on('click', {text: 'bbb'}, testFunc); // pridáme obslužnú funkciu
$('#test2').off('click', testFunc); // odstránime obslužnú funkciu