off metódus
Az off metódus lehetővé teszi eseménykezelők
leválasztását egy elemről. Eseménykezelő hozzáadásához
használhatod a
off metódust.
Szintaxis
Így távolítunk el egy eseménykezelőt egy elemnél,
az első paraméterként egy vagy több szóközzel elválasztott
eseményt adunk meg sztring formájában, a másodikként pedig
egy további szűrő szelektort adunk meg az elem belsejében lévő
utódokhoz (ennek meg kell egyeznie azzal, amit az
on metódusnak adtunk át, amikor hozzáadtuk
a kezelőt). Az összes delegált esemény eltávolításához
adjuk meg a '**' értéket. A második paraméter
opcionális. A harmadikként adjuk meg a kezelőfüggvényt
(amit hozzáadtunk), amely az eseményobjektumot kapja meg,
vagy adjunk át false értéket:
$(szelektor).off(események, [szelektor], kezelőfüggvény(eseményobjektum));
Az off metódust más módon is használhatjuk,
ekkor az első paraméterként egy JavaScript objektumot adunk át,
ahol a kulcsok az eseménytípusok, az értékek pedig
a kezelőfüggvények, amelyeket hozzáadtunk az
elemhez:
$(szelektor).off({'eseménytípus': handler}, [szelektor]);
Átadhatunk egyetlen paramétert is
jQuery.Event objektum formájában:
$(szelektor).off(esemény);
Ha nem adunk át paramétereket a metódusnak, akkor minden hozzáadott kezelő le lesz választva az elemről:
$(szelektor).off();
Példa
Adjunk hozzá egy testFunc kezelőfüggvényt
a bekezdésekhez. De azonnal távolítsuk el a kezelőt a
második bekezdéstől, így a második bekezdésre kattintás nem fog
semmit sem eredményezni (ha az utolsó
kódsort kikommentezzük, látni fogjuk, hogy az esemény aktiválódik és
a második bekezdésre kattintáskor is):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // kezelő hozzáadása
$('#test2').on('click', {text: 'bbb'}, testFunc); // kezelő hozzáadása
$('#test2').off('click', testFunc); // kezelő eltávolítása