Все ответы имеют отличный совет для вас, но они, возможно, пропустили проблему.Фактически, Людовико дал вам ответ, но он был тихо включен в его другую очень полезную информацию, так что, возможно, вы пропустили его.
Вы столкнулись с чем-то, что называется делегирование события ,Это означает, что элементы, недавно добавленные в DOM, не имеют связанных с ними привязок кликов (даже если вы определили их в коде) , потому что их не было в DOM, когда события кликов были связаны с соответствующими элементами.
(Обратите внимание, что «DOM» - это, по сути, живая веб-страница, как она отображается на вашем экране, со всеми реальнымивременные моды из javascript и т. д. Так что это больше, чем просто HTML-код.)
Очень просто решить эту проблему, используя jQuery.
Вместо:
$('#myID').click(function(){
//your code here
});
сделать это вместо этого:
$(document).on('click', '#myID', function(){
//your code here
});
Для этого нужно связать событие click с чем-то, что существует во время рендеринга DOM (т. Е. Объект document)) - и метод jQuery .on()
теперь отслеживает DOM на предмет вставки чего-либо еще.Если какой-либо новый элемент соответствует указанному элементу, событие щелчка привязывается к этому элементу всякий раз, когда оно появляется в DOM .
Ссылки:
https://learn.jquery.com/events/event-delegation/
https://api.jquery.com/on/
http://jqfundamentals.com/chapter/events