Установка разового обработчика событий .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 не будет опубликован. Обязательные поля помечены *