Eveniment unic în jQuery

Când am studiat dezlegarea evenimentelor cu ajutorul metodei off, am folosit următoarea construcție:

javascript$('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:

html<ul>
  <li>text</li>
  <li>text</li>
  <li>text</li>
</ul>

Codul CSS arată astfel:

cssli {
  width: 100px;
  cursor: pointer;
}

Acum atașăm fiecărui li un eveniment unic:

javascript$('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.

Задание 1

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.

Задание 2

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.

Задание 3

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ă.

Задание 4

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.