one()
43
посл. ред.
23.08.2016
Метод 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>
Параграф