附加href在点击时不启动功能

时间:2013-03-08 11:36:42

标签: javascript jquery html

我有以下情况,我真的不知道为什么它不会解雇:

$('.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上没有发生任何事情!

谢谢特德

2 个答案:

答案 0 :(得分:3)

因为在绑定click事件后添加了锚点,因此绑定事件时元素不存在。

您可以使用event delegation进行修复:

$(".coda-nav").on("click", "#ref2", function() {
    console.log("test");
});

答案 1 :(得分:3)

看看:http://api.jquery.com/on/

您的click处理程序未附加到新创建的<a>。您需要On即时附加它。

这样就会成为:

$(".coda-nav").on("click", "#ref2", function() {
    console.log("test");
});