one()

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

Варианты использования

jQ_object.one(имя_события[, селектор][, данные], обработчик) => jQuery
Устанавливает один общий обработчик на одно или несколько событий.
jQ_object.one({
имя_события-1: обработчик-1,
имя_события-2: обработчик-2,
...}[, селектор][, данные]) => jQuery
Отдельно устанавливает обработчики различных событий.
имя_события
Строка, в которой через пробел указаны названия событий. В названии события можно использовать пространства имён. Обработчик сработает по одному разу для каждого указанного типа события.
селектор
Селектор для поиска элемента внутри исходного (на котором установлен обработчик). Обработчик будет запущен только в том случае, если событие всплывает от найденного элемента (элемент не обязательно должен быть целевым). Используется для делегирования событий.
данные
Данные в любом формате, которые будут доступны в объекте события в свойстве event.data.
обработчик
Функция, которая запустится по одному разу для каждого указанного типа события. Значение false соответствует установке function() {return false;}.

Примеры

<html>
<head>
  <title>Работа с событиями в jQuery</title>
  <script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
  <button>Добавить рамку</button>
  <p>Параграф</p>
</body>
</html>
 
<script>
/* Рисует рамку и устанавливает обработчик кнопки */
function addBorder() {
  $('p').css('border', '2px solid red');
  $('button')
    .one('click', removeBorder)
    .text('Удалить рамку');
}
/* Убирает рамку и устанавливает обработчик кнопки */
function removeBorder() {
  $('p').css('border', '');
  $('button')
    .one('click', addBorder)
    .text('Добавить рамку');
}

$('button').one('click', addBorder);
</script>

Параграф