Metoda off
Metoda off permite eliminarea gestionarului
de evenimente de la un element. Pentru a atașa un gestionar
puteți utiliza metoda
off.
Sintaxă
Astfel eliminăm un gestionar de evenimente de la un element,
ca prim parametru sub formă de șir de caractere
se transmite unul sau mai multe evenimente separate
prin spații, al doilea - transmitem un selector de filtrare
suplimentar pentru descendenții din interiorul elementului
(acesta trebuie să coincidă cu cel pe care l-am transmis în
metoda on, atunci când am atașat
gestionarul). Pentru a elimina toate evenimentele delegat,
transmiteți valoarea '**'. Al doilea parametru
este opțional. Al treilea parametru este funcția-gestionar
(pe care am atașat-o), căreia i se transmite obiectul
evenimentului sau transmiteți false:
$(selector).off(evenimente, [selector], funcție-gestionar(obiect eveniment));
Puteți utiliza metoda off diferit,
atunci primul parametru este
un obiect JavaScript, unde cheile sunt tipul de eveniment, iar
valorile sunt funcțiile-gestionare pe care le-am adăugat la
element:
$(selector).off({'tip eveniment': handler}, [selector]);
Putem pur și simplu să transmitem un parametru sub formă
de obiect jQuery.Event:
$(selector).off(eveniment);
Dacă nu transmiteți parametri metodei, atunci vom elimina de la element toate gestionarele atașate:
$(selector).off();
Exemplu
Să adăugăm funcția-gestionar
testFunc la paragrafe. Dar imediat eliminăm gestionarul de la
al doilea paragraf, astfel click-ul pe al doilea paragraf nu va
duce la nimic (dacă comentăm ultima
linie de cod, vom vedea cum evenimentul se declanșează și
la click pe al doilea paragraf):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // adăugăm gestionarul
$('#test2').on('click', {text: 'bbb'}, testFunc); // adăugăm gestionarul
$('#test2').off('click', testFunc); // eliminăm gestionarul