Metode off
Metode off ļauj atvienot notikumu
apstrādes funkciju no elementa. Lai piesaistītu apstrādes funkciju
var izmantot metodi
off.
Sintakse
Tādā veidā mēs noņemam notikumu apstrādes funkciju no elementa,
kā pirmais parametrs virknes veidā
tiek padots viens vai vairāki notikumi, atdalīti
ar atstarpēm, otrais - mēs nododam papildu
filtrēšanas selektoru elementa iekšējiem pēctečiem
(tam jāsakrīt ar to, ko mēs nododām
metodei on, kad pievienojām
apstrādes funkciju). Lai noņemtu visus deleģētos notikumus,
nododiet vērtību '**'. Otrais parametrs
nav obligāts. Trešo mēs nododam apstrādes funkciju
(ko mēs pievienojām), kurā tiek nodots objekts
notikuma vai mēs nododam false:
$(selektors).off(notikumi, [selektors], apstrādes-funkcija(notikuma objekts));
Var izmantot metodi off citādi,
tad kā pirmais parametrs tiek nodots
JavaScript objekts, kur atslēgas - notikuma veids, bet
vērtības - apstrādes funkcijas, ko mēs pievienojām
elementam:
$(selektors).off({'notikuma veids': handler}, [selektors]);
Mēs varam vienkārši nodot vienu parametru
objekta jQuery.Event veidā:
$(selektors).off(notikums);
Ja metodi nepadod parametrus, tad mēs atvienosim no elementa visas pievienotās apstrādes funkcijas:
$(selektors).off();
Piemērs
Pievienosim rindkopām apstrādes funkciju
testFunc. Bet uzreiz noņemsim apstrādes funkciju no
otrās rindkopas, tādējādi klikšķis uz otrās rindkopas nenovedīs
pie nekā (ja mēs aizkomentēsim pēdējo
koda rindu, tad redzēsim, kā notikums tiek izsaukts arī
ar klikšķi uz otrās rindkopas):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // pievienojam apstrādes funkciju
$('#test2').on('click', {text: 'bbb'}, testFunc); // pievienojam apstrādes funkciju
$('#test2').off('click', testFunc); // noņemam apstrādes funkciju