# Метод 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`,
  который содержит информацию о событии

←→
↑