.one( типСобытия, [ данныеСобытия ], обработчик(объектСобытия))
Описание:
Прикрепляет обработчик события для элементов. Обработчик выполняется не более одного раза на каждый элемент.
.one( типСобытия, [ данныеСобытия ], обработчик(объектСобытия) )
Строка, содержащая один или несколько типов
событий JavaScript, такие как "click" или "submit", или пользовательские
имена событий.
Карта данных, которые будут переданы в обработчик события.
обработчик(объектСобытия)
Функция, выполняемая каждый раз, когда событие вызванно. Этот метод идентичен .bind() ,
за исключением того, что обработчик освобождается после своего первого вызова.
Например:
$('#foo').one('click', function() {
alert('This will be displayed only once.');
});
После выполнения кода, нажатие на элемент с идентификатором Foo
выдаст предупреждение. Последующие клики ничего не дадут. Этот код эквивалентен:
$('#foo').bind('click', function(event) {
alert('This will be displayed only once.');
$(this).unbind(event);
});
Иными словами, явный вызов .unbind()
в рамках регулярно связанных обработчиков имеет точно такой же эффект. Примеры
Пример 1
Связывание одиночного клика с каждым элементом div.
var n = 0;
$("div").one("click", function(){
var index = $("div").index(this);
$(this).css({ borderStyle:"inset",
cursor:"auto" });
$("p").text("Div at index #" + index + " clicked." +
" That's " + ++n + " total clicks.");
});
Пример 2
Отображение текста параграфа в сообщении alert после одного клика на каждом из них:
$("p").one("click", function(){
alert( $(this).text() );
});
|