Я использую dust.js (после долгих поисковых запросов из-за отсутствия хорошей документации). Наконец, я смог создать гиперссылку динамически. Теперь я хочу предоставить функциональность onclick для динамически созданной гиперссылки.jquery on click не запускается, когда я напрямую обращаюсь к нему по ID
function createLink(){
// register the template loading method with dust now
var compiled = dust.compile("Hello <a href='#' id='linked'>{name}</a>!", "intro");
dust.loadSource(compiled);
dust.render("intro", {name: "Fred"}, function(err, out) {
console.log(out);
$("#displayHelloSection").html(out);
});
}
Ниже мой документ готов. Как ни странно, когда я нажимаю на созданную гиперссылку, я получаю Apple, но не Orange. Мне любопытно узнать, почему второй onclick не работал? Разница в том, что в первом я использую документ для ссылки на мой id ('#linked'). Во втором я напрямую обращаюсь к id.
$(document).ready(function() {
$(document).on('click','#linked',function(e){
alert("Apple");
});
$('#linked').on('click', function() {
alert('Orange');
});
});
И это объясняет почему бдительность Не работайте. Чтобы заставить бдительность работать, вам, вероятно, нужно прикрепить «яблочный» сигнал внутри dust.render. –
@ E.Maggini - Я добавил пару вариантов для OP к моему ответу. – jfriend00
Делегированные мероприятия! Я пойду с выбором 2. согласиться с ответом. – cherit