Однократное событие в jQuery

Когда мы изучали отвязывание событий с помощью метода off, мы использовали следующую конструкцию:

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

Сначала мы прикрепляли функцию-обработчик с помощью on, затем отвязывали с помощью off.

В jQuery есть удобный метод one, который позволяет привязать однократное событие - оно выполнится только только один раз, а потом автоматически отвяжется. Этот метод первым параметром принимает тип события, а вторым - привязанную функцию.

Следующй пример мы рассмотрим на основе нижеприведенного HTML кода:

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

CSS код выглядит так:

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

Теперь к каждой li привязываем однократное событие:

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

Понажимайте на пункты списка. Как видите, мы получили тот же эффект, благодаря методу one.

Задание 1

Привяжите всем ссылкам событие - по наведению на ссылку в конец ее текста дописывается ее href в круглых скобках. После первого наведению на ссылку следует отвязать от нее событие, которое добавляет href в конец текста.

Задание 2

Для всех инпутов сделайте так, чтобы они выводили свой value при нажатии на любой из них, но только по первому нажатию. Повторное нажатие на инпут не должно вызывать реакции.

Задание 3

Даны абзацы с числами. По клику на абзац в нем должен появится квадрат числа, которое он содержит, но только по первому клику. По двойному клику на абзац число в абзаце должно удвоится, но тоже только первый раз.

Задание 4

Даны абзацы. Сделайте так, чтобы по первому клику на абзац ему в конец добавлялся '!', но только по первому клику.