Метод one - добавление функции обработчика событий к элементу

Метод one позволяет добавить обработчик событий к элементу. После того, как событие отработает один раз - обработчик будет автоматически удален.

Синтаксис

Так мы прикрепляем обработчик событий к элементу, в качестве первого параметра в виде строки передается одно или несколько событий разделенных пробелами, вторым - передаем данные в виде объекта JavaScript, которые передаются в обработчик в свойстве event.data при срабатывании события. Второй параметр необязательный. Третьим передаем функцию-обработчик, в которую передается объект события или передаем false:

$(селектор).one(события, [данные], функция-обработчик(объект события));

Можно вторым параметром передать допольнительный фильтрующий селектор потомков внутри элемента, третьим - дополнительные данные, которые передаются в обработчик в свойстве event.data при срабатывании события. Второй и третий парметры необязательны. Четвертым передаем функцию-обработчик, в которую передается объект события и необязательные дополнительные параметры. Если вместо функции-обработчика передать false, то функция просто вернет false:

$(селектор).one(события, [селектор], [данные], функция-обработчик(объект события));

Можно воспользоваться методом one по-другому, тогда в первый параметр передается объект JavaScript, где ключи - тип события, а значения - функция-обработчик, которую мы добавляли к элементу:

$(селектор).one({'тип события': handler}, [селектор], [данные]);

Если мы не передаем дополнительный селектор, то событие срабатывает на элементе, к которому мы прикрепляем обработчик, в противном случае - на элементе-потомке, который который соответствует этому селектору (делегированные события).

Пример

Давайте при клике на абзац выведем данные, которые мы передали в метод one. При последующих кликах ничего происходить не будет. Воспользуемся функцией-обработчиком testFunc, которую мы создали:

<p>click</p> function testFunc(event) { alert(event.data.text); } $('p').one('click', {text: 'aaa' }, testFunc);

Смотрите также

  • метод on,
    который позволяет привязать обработчик событий к элементу
  • метод off,
    который позволяет удалить обработчик событий у элемента
  • объект event,
    который содержит информацию о событии



Чат с GPT Компилятор