мы можем использовать jquery one () для класса атрибута, имеющего несколько элементов

0

Я пытаюсь сделать это, у меня есть другой элемент DIV имеющий другой ID и тот же class

Я знаю, что:

 $(id).one() 

а также

 $(class).one() 

он работает, как указано в док здесь: Приложить обработчик события для элементов. Обработчик выполняется не более одного раза для каждого элемента для каждого типа события.

Что я хочу:

 $(class).one()

Обработчик выполняется не чаще одного раза за ID т.е. Один раз за элемент DIV для каждого типа события. и не только один раз для класса?

Решение, которое я знаю:

$(id1).one()

$(id2).one()

$(id3).one() ...

напиши это столько раз, сколько у меня есть ID, который I don't want

Является ли это возможным?

Заранее спасибо!

  • 0
    Один раз за удостоверение личности? Идентификаторы уникальны ...
Теги:
event-handling

3 ответа

1
Лучший ответ

не уверен, что вы просите. но 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');
 })

скрипка здесь

  • 0
    Спасибо @Bipen это работает
  • 0
    добро пожаловать .. :) @sandip ... рад, что это помогло .. счастливое кодирование .. :)
2

Если вы правильно поняли, что вы хотите, чтобы щелчок запускался один раз для каждого класса, one функция с параметром selector должна делать трюк:

$(document).one("click", ".div-group", function(){
    alert(this.id);
});

Демо здесь

  • 0
    Нет, я хочу, чтобы (в ДЕМО) вышеупомянутое оповещение отображалось на каждом div, но ровно один раз, если вы нажмете на любое div, второе время предупреждение не будет отображаться
  • 0
    Тогда я не вижу, с какой проблемой вы сталкиваетесь; .one должен работать как есть (см. ответ Бипена).
Показать ещё 1 комментарий
0

Я предполагаю, что вы хотите добавить 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' );
})
  • 0
    Вам не нужно off там вообще .. проверить .one() в JQuery документы ... one() был ввести в точно такой же причине , так что вам не придется вызывать on() и off() функция снова и снова
  • 0
    Таким образом, оно связывает событие с каждым соответствующим элементом, поэтому 3 элемента означают, что я могу запустить его 3 раза?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню