Jednorazowe zdarzenie w jQuery

Gdy studiowaliśmy odwiązywanie zdarzeń za pomocą metody off, używaliśmy następującej konstrukcji:

javascript$('li').on('click', function() {
  $(this).append('!');
  $(this).off('click', func);
});

Najpierw dołączaliśmy funkcję-obsługę za pomocą on, następnie odwiązywaliśmy za pomocą off.

W jQuery istnieje wygodna metoda one, która pozwala powiązać jednorazowe zdarzenie - wykona się ono tylko raz, a następnie automatycznie odwiąże. Ta metoda jako pierwszy parametr przyjmuje typ zdarzenia, a jako drugi - dołączoną funkcję.

Następujący przykład rozważymy na podstawie poniższego kodu HTML:

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

Kod CSS wygląda tak:

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

Teraz do każdego li dołączamy jednorazowe zdarzenie:

javascript$('li').one('click', function() {
  $(this).append('!');
});

Kliknij na punkty listy. Jak widzisz, otrzymaliśmy ten sam efekt, dzięki metodzie one.

Задание 1

Podłącz do wszystkich linków zdarzenie - po najechaniu na link na końcu jej tekstu dopisz jej href w okrągłych nawiasach. Po pierwszym najechaniu na link należy odwiązać od niego zdarzenie, które dodaje href na koniec tekstu.

Задание 2

Dla wszystkich inputów zrób tak, aby wyświetlały swój value po naciśnięciu na którykolwiek z nich, ale tylko przy pierwszym naciśnięciu. Ponowne naciśnięcie na input nie powinno wywoływać reakcji.

Задание 3

Dane są akapity z liczbami. Po kliknięciu na akapit powinien w nim pojawić się kwadrat liczby, którą zawiera, ale tylko przy pierwszym kliknięciu. Po podwójnym kliknięciu na akapit liczba w akapicie powinna się podwoić, ale też tylko pierwszy raz.

Задание 4

Dane są akapity. Zrób tak, aby po pierwszym kliknięciu na akapit na jego końcu dodawał się '!', ale tylko przy pierwszym kliknięciu.