Metodas off
Metodas off leidžia atjungti įvykių
apdorojimo funkciją nuo elemento. Norėdami pridėti apdorojimo funkciją
galite naudoti metodą
off.
Sintaksė
Taip pašaliname įvykių apdorojimo funkciją nuo elemento,
kaip pirmas parametras perduodamas vienas ar keli įvykiai atskirti
tarpais, antruoju - perduodame papildomą
filtruojantį selektorių elemento palikuoniams
(jis turi sutapti su tuo, ką perdevome į
metodą on, kai pridedame
apdorojimo funkciją). Norėdami pašalinti visus deleguotus įvykius,
perduokite reikšmę '**'. Antrasis parametras
neprivalomas. Trečiuoju perduodame apdorojimo funkciją
(kurią pridėjome), į kurią perduodamas įvykio
objektas arba perduodame false:
$(selektorius).off(įvykiai, [selektorius], apdorojimo-funkcija(įvykio objektas));
Galima naudoti metodą off kitu būdu,
tada pirmu parametru perduodamas
JavaScript objektas, kur raktai - įvykio tipas, o
reikšmės - apdorojimo funkcijos, kurias pridėjome prie
elemento:
$(selektorius).off({'įvykio tipas': handler}, [selektorius]);
Galime tiesiog perduoti vieną parametrą kaip
objektą jQuery.Event:
$(selektorius).off(įvykis);
Jei neperduosime metodui parametrų, tai atjungsime nuo elemento visas pridėtas apdorojimo funkcijas:
$(selektorius).off();
Pavyzdys
Pridėkime prie pastraipų apdorojimo funkciją
testFunc. Bet iškart pašalinkime apdorojimo funkciją iš
antros pastraipos, taip paspaudimas ant antros pastraipos nebus
nieko sukeliantis (o jei užkomentuosime paskutinę
kodo eilutę, pamatysime kaip įvykis suveikia ir
paspaudus ant antros pastraipos):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // pridedame apdorojimo funkciją
$('#test2').on('click', {text: 'bbb'}, testFunc); // pridedame apdorojimo funkciją
$('#test2').off('click', testFunc); // pašaliname apdorojimo funkciją