Metoda off
Metoda off omogoča odvezavo funkcije
za obravnavo dogodkov iz elementa. Za vezavo funkcije
za obravnavo lahko uporabite metodo
off.
Sintaksa
Tako odstranimo funkcijo za obravnavo dogodkov iz elementa,
kot prvi parameter v obliki niza
se posreduje en ali več dogodkov, ločenih s
presledki, drugi - posredujemo dodaten
filtrirajoč izbirnik potomcev znotraj elementa
(moral bi se ujemati s tistim, kar smo posredovali v
metodo on, ko smo pritrdili
funkcijo za obravnavo). Če želite odstraniti vse delegate dogodke,
posredujte vrednost '**'. Drugi parameter
je neobvezen. Tretjič posredujemo funkcijo za obravnavo
(ki smo jo pritrdili), v katero se posreduje objekt
dogodka ali posredujemo false:
$(izbirnik).off(dogodki, [izbirnik], funkcija-za-obravnavo(objekt dogodka));
Lahko uporabite metodo off drugače,
potem se v prvi parameter posreduje
objekt JavaScript, kjer so ključi - tip dogodka, in
vrednosti - funkcije za obravnavo, ki smo jih dodali k
elementu:
$(izbirnik).off({'tip dogodka': handler}, [izbirnik]);
Lahko preprosto posredujemo en parameter v obliki
objekta jQuery.Event:
$(izbirnik).off(dogodek);
Če metodi ne posredujemo parametrov, potem odvežemo od elementa vse pritrjene funkcije za obravnavo:
$(izbirnik).off();
Primer
Dodajmo odstavkom funkcijo za obravnavo
testFunc. Toda takoj odstranimo funkcijo za obravnavo pri
drugem odstavku, tako da klik na drugi odstavek ne bo
povzročil ničesar (če pa zakomentiramo zadnjo
vrstico kode, bomo videli, kako se dogodek sproži in
ob kliku na drugi odstavek):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // dodamo funkcijo za obravnavo
$('#test2').on('click', {text: 'bbb'}, testFunc); // dodamo funkcijo za obravnavo
$('#test2').off('click', testFunc); // odstranimo funkcijo za obravnavo