我有以下情况,我真的不知道为什么它不会解雇:
$('.tab3').click(function() {
//console.log("test");
$('.coda-nav').append('<a href="#" style="position: relative;" id="ref1">blabla</a>');
$('.coda-nav').append('<a href="#" style="position: relative;" id="ref2">blabla</a>');
$('.coda-nav').append('<a href="#" style="position: relative;" id="ref3">blabla</a>');
});
这很好用。如果我点击tab3它会附加3个链接!然后:
$('#ref2').click(function() {
console.log("test");
});
请告诉我为什么在ref2上没有发生任何事情!
谢谢特德
答案 0 :(得分:3)
因为在绑定click
事件后添加了锚点,因此绑定事件时元素不存在。
您可以使用event delegation进行修复:
$(".coda-nav").on("click", "#ref2", function() {
console.log("test");
});
答案 1 :(得分:3)
您的click
处理程序未附加到新创建的<a>
。您需要On
即时附加它。
这样就会成为:
$(".coda-nav").on("click", "#ref2", function() {
console.log("test");
});