Ответ 1
Используйте. как в примере ниже. Можно предположить, что тег body всегда доступен, поэтому можно безопасно присоединить обработчик события к телу и делегировать события селектору, в этом случае .test.
$(document).ready(function(){
$('body').on('click', '.test', function(){ // Make your changes here
var id = $(this).attr('id');
console.log("clicked" + id);
});
generatePage();
});
Или, если generatePage() также генерирует теги html, head и body, используйте document как ваш селектор.
$(document).ready(function(){
$(document).on('click', '.test', function(){ // Make your changes here
var id = $(this).attr('id');
console.log("clicked" + id);
});
generatePage();
});
Согласно документации jQuery. принимает следующие параметры:
.on( events [, selector] [, data], handler(eventObject) )
Включение селектора описывается следующим образом:
Когда предоставляется селектор, обработчик события называется делегированы. Обработчик не вызывается, когда событие происходит непосредственно на связанный элемент, но только для потомков (внутренних элементов), которые сопоставить селектор. jQuery пузыриет событие от целевого события к элементу, в котором прикреплен обработчик (то есть, наиболее внешний элемент) и запускает обработчик для любых элементов вдоль этого путь, соответствующий селектору.