Meetod off
Meetod off võimaldab sündmuste töötlejat
elemendilt lahti siduda. Töötleja sidumiseks
saab kasutada meetodit
off.
Süntaks
Nii eemaldame elemendilt sündmuste töötleja,
esimese parameetrina edastatakse stringina
üks või mitu tühikuga eraldatud sündmust,
teisega - edastame täiendava
filtreeriva valija elemendi sees olevatele järeltulijatele
(see peab ühtima sellega, mida me edastasime
meetodile on, kui kinnitasime
töötleja). Kõikede delegeeritud sündmuste eemaldamiseks
edasta väärtus '**'. Teine parameeter
on valikuline. Kolmandana edastame töötlejafunktsiooni
(mille me kinnitasime), kuhu edastatakse sündmusobjekt
või edastame false:
$(valija).off(sündmused, [valija], töötlejafunktsioon(sündmusobjekt));
Saab kasutada meetodit off teistmoodi,
siis esimesse parameetrisse edastatakse
JavaScripti objekt, kus võtmed on sündmuse tüüp, aga
väärtused - töötlejafunktsioonid, mille me lisasime
elemendile:
$(valija).off({'sündmuse tüüp': handler}, [valija]);
Saame lihtsalt edastada ühe parameetri kujul
objekti jQuery.Event:
$(valija).off(sündmus);
Kui meetodile parameetreid ei edasta, siis sidume elemendilt lahti kõik kinnitatud töötlejad:
$(valija).off();
Näide
Lisame lõikudele töötlejafunktsiooni
testFunc. Aga eemaldame kohe töötleja
teisest lõigust, nii et klõps teise lõigu peale ei vii
millelegi (kui aga kommenteerime viimase
koodirea välja, siis näeme kuidas sündmus käivitub ja
klõpsul teise lõigu peale):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // lisame töötleja
$('#test2').on('click', {text: 'bbb'}, testFunc); // lisame töötleja
$('#test2').off('click', testFunc); // eemaldame töötleja