Metoda off în jQuery
Detașarea evenimentelor, atașate prin
on,
se realizează cu ajutorul metodei
off.
Primul parametru primește tipul de eveniment
(de exemplu, 'click'), iar al doilea - numele
funcției care trebuie detașată.
Să analizăm următorul exemplu. Să presupunem că avem codul HTML:
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
În CSS este specificat stilul pentru tag-ul li:
li {
width: 100px;
cursor: pointer;
}
Să facem astfel încât după primul
click pe li, evenimentul să fie
detașat de la el:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Faceți click pe elementele listei. Veți observa că la un nou
click pe același element al listei nu se întâmplă nimic, deoarece
funcția noastră func după execuția metodei
append
este detașată prin metoda off.
Atașați tuturor link-urilor un eveniment - la
trecerea mouse-ului peste link, la sfârșitul textului său
se adaugă href-ul acestuia între paranteze
rotunde. După prima trecere a mouse-ului peste link
trebuie să detașați de la el evenimentul care
adaugă href la sfârșitul textului.
Pentru toate câmpurile input, faceți astfel încât acestea
să își afișeze value la
apăsarea pe oricare dintre ele, dar doar la
prima apăsare. O apăsare repetată pe
câmpul input nu ar trebui să provoace nicio reacție.
Sunt date paragrafe cu numere. La click pe un paragraf în el trebuie să apară pătratul numărului pe care îl conține, dar doar la primul click. La un dublu click pe paragraf, numărul din paragraf trebuie să se dubleze, dar tot doar prima dată.