Eveniment unic în jQuery
Când am studiat dezlegarea evenimentelor cu
ajutorul metodei
off,
am folosit următoarea construcție:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Mai întâi atașam funcția-manipulator cu
ajutorul on,
apoi o dezlegam cu ajutorul off.
În jQuery există o metodă convenabilă
one,
care permite legarea unui eveniment unic -
acesta se va executa doar o singură dată, iar
apoi se va dezlega automat. Această metodă
primește ca prim parametru tipul evenimentului,
iar ca al doilea - funcția atașată.
Următorul exemplu îl vom analiza pe baza următorului cod HTML:
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
Codul CSS arată astfel:
li {
width: 100px;
cursor: pointer;
}
Acum atașăm fiecărui li
un eveniment unic:
$('li').one('click', function() {
$(this).append('!');
});
Faceți clic pe elementele
listei. După cum vedeți, am obținut același efect, datorită
metodei one.
Atașați tuturor linkurilor un eveniment - la
trecerea cursorului peste link, la sfârșitul textului său
se adaugă href-ul acestuia între
paranteze rotunde. După prima trecere a cursorului peste link
trebuie să se dezlege de el evenimentul care
adaugă href la sfârșitul textului.
Pentru toate câmpurile de input faceți astfel încât acestea să
afișeze propria lor value la
apăsarea pe oricare dintre ele, dar doar la
prima apăsare. Apăsarea repetată pe
input nu ar trebui să provoace reacție.
Sunt date paragrafe cu numere. La clic pe paragraf în el trebuie să apară pătratul numărului pe care îl conține, dar doar la primul clic. La dublu clic pe paragraf numărul din paragraf trebuie să se dubleze, dar tot doar prima dată.
Sunt date paragrafe. Faceți astfel încât la primul
clic pe paragraf la sfârșitul acestuia să se adauge '!',
dar doar la primul clic.