Я пытаюсь сделать это, у меня есть другой элемент DIV
имеющий другой ID
и тот же class
Я знаю, что:
$(id).one()
а также
$(class).one()
он работает, как указано в док здесь: Приложить обработчик события для элементов. Обработчик выполняется не более одного раза для каждого элемента для каждого типа события.
Что я хочу:
$(class).one()
Обработчик выполняется не чаще одного раза за ID
т.е. Один раз за элемент DIV для каждого типа события. и не только один раз для класса?
Решение, которое я знаю:
$(id1).one()
$(id2).one()
$(id3).one() ...
напиши это столько раз, сколько у меня есть ID, который I don't want
Является ли это возможным?
Заранее спасибо!
не уверен, что вы просите. но most once per element per event type
селекторе класса most once per element per event type
должны работать
<div class="click">click1</div>
<div class="click">click2</div>
$('.click').one("click",function(){
alert('clicked');
})
Если вы правильно поняли, что вы хотите, чтобы щелчок запускался один раз для каждого класса, one
функция с параметром selector
должна делать трюк:
$(document).one("click", ".div-group", function(){
alert(this.id);
});
.one
должен работать как есть (см. ответ Бипена).
Я предполагаю, что вы хотите добавить one()
ко всем элементам этого класса, но каждый из этих элементов можно щелкнуть только один раз:
<div class="click">click1</div>
<div class="click">click2</div>
$('.click').one("click",function(){
$(this).off('click'); // torn off click event
alert( 'This element will not alert this message again' );
})
off
там вообще .. проверить .one()
в JQuery документы ... one()
был ввести в точно такой же причине , так что вам не придется вызывать on()
и off()
функция снова и снова