Установка разового обработчика событий .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]