2013-07-03 5 views
1

Я создаю несколько кнопок на мобильном сайте jQuery динамически. Я создаю их, как это:Один обработчик события .click для нескольких кнопок

$('#Gallery' + i + ' .gallery').after('<button type="button" class="loadMorePhotos">More Photos...</button>'); 

Затем я создаю простой обработчик .click события так:

$(".loadMorePhotos").click(function(){ 
      alert("ok malaka!"); 
}); 

Я был достаточно осторожным НЕ использовать атрибут id для идентификации кнопок, поскольку у меня есть несколько кнопок, и это испортит ситуацию. Вместо этого я использую атрибут class, который, насколько я понимаю, должен работать.

Однако предупреждение не выполняется. Что я могу делать неправильно? Делегация

+0

Вы уверены, вы привязываете обработчик события * после * элемент был вставлен? Пожалуйста, напишите более полный пример, который показывает связь между этими двумя утверждениями. –

+0

Возможный дубликат [События, инициируемые динамически сгенерированным элементом, не захватываются обработчиком событий] (http://stackoverflow.com/questions/12829963/events-triggered-by-dynamically-generated-element-are-not-captured-by -event-hand) –

+0

Большое спасибо @Felix за ваше редактирование и за то, что он указал на другой очень полезный вопрос. Ура! –

ответ

6

Событие:

$(document).on("click", ".loadMorePhotos", function(){ 
     alert("ok malaka!"); 
}); 

Поскольку ваши элементы создаются динамически, вы должны привязать обработчик щелчка к элементу, который уже существует в DOM готов (в данном случае, document)

+1

(+1) Вы были быстрее! :) – Alvaro

+2

Или привязать обработчик события к элементу после его создания. –

+0

Большое спасибо, сэр. Я не знал об этом, но теперь я понимаю! : D –

Смежные вопросы