Установка разового обработчика событий .one()

.one() — устанавливает обработчик события выбранным элементам страницы. Особенностью метода является то, что обработчик будет вызван не более одного раза, на каждом из элементов.

.one( events [, data ], handler )
  • evenst — тип(ы) обрабатываемых событий. Например «click», «resize» и т.д. Может быть указано сразу несколько типов, разделенных пробелами, а так же, могут быть указаны пространства имен;
  • data — данные передаваемые в обработчик в переменную event.data когда выполняется событие;
  • handler — функция, которая будет установлена в качестве обработчика. Значение false является кратким аналогом для функции возвращающей return false.
.one( events [, selector ] [, data ], handler )
  • evenst — тип(ы) обрабатываемых событий. Например «click», «resize» и т.д. Может быть указано сразу несколько типов, разделенных пробелами, а так же, могут быть указаны пространства имен;
  • selector — строка, селектор, для фильтрации потомков выбранных элементов, для которых вызывается событие. Если селектор не указан или равен null, то событие всегда срабатывает при достижении выбранных элементов;
  • data — данные передаваемые в обработчик в переменную event.data когда выполняется событие;
  • handler — функция, которая будет установлена в качестве обработчика. Значение false является кратким аналогом для функции возвращающей return false.
.one( events [, selector ] [, data ] )
  • evenst — тип(ы) обрабатываемых событий. Например «click», «resize» и т.д. Может быть указано сразу несколько типов, разделенных пробелами, а так же, могут быть указаны пространства имен;
  • selector — строка, селектор, для фильтрации потомков выбранных элементов, для которых вызывается событие. Если селектор не указан или равен null, то событие всегда срабатывает при достижении выбранных элементов;
  • data — данные передаваемые в обработчик в переменную event.data когда выполняется событие.

Метод .one() идентичен .on(), с одним отличием — обработчик будет автоматически откреплён от элемента после первой отработки, например:

$( "#foo" ).one( "click", function() {
  alert( "This will be displayed only once." );
});

При первом клике по элементу будет выведено сообщение, однако последующие клики не приведут ни к каким действиям. Этот код можно переписать используя обработчик .on():

$( "#foo" ).on( "click", function( event ) {
  alert( "This will be displayed only once." );
  $( this ).off( event );
});

Тут метод .off() производит такой же эффект отключения обработчика.

Пример

[codepen_embed height=»298″ theme_id=»0″ slug_hash=»XeqMLg» default_tab=»js,result» user=»AmateR»]See the Pen <a href=’https://codepen.io/AmateR/pen/XeqMLg/’>XeqMLg</a> by Aleksei (<a href=’https://codepen.io/AmateR’>@AmateR</a>) on <a href=’https://codepen.io’>CodePen</a>.[/codepen_embed]

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *