动态添加HTML时,不会触发Click事件

时间:2013-11-17 07:35:56

标签: javascript jquery

我在页面加载时添加了一个链接按钮

$(function(){
    $("#nav_container").append('<a id="testID" href="#">Click on me</a>');

    $("#testID").bind("click",function(){
        alert("hi");
    });
});

$(function(){ $("#nav_container").append('<a id="testID" href="#">Click on me</a>'); $("#testID").bind("click",function(){ alert("hi"); }); });

但警告即将点击链接

3 个答案:

答案 0 :(得分:3)

对于动态添加的DOM元素,您需要使用.on(),如下所示:

$(document).on('click', '#testID', function(){
    alert('hi');
});
希望有所帮助。

答案 1 :(得分:1)

试试这个:

$("#nav_container").on("click","#testID",function(){
    alert("hi");
});

答案 2 :(得分:1)

对于动态元素,我们应该按照其他人的建议使用$ .on。但在你的情况下,它应该不使用$ .on。由于要重新加载<a>标记默认操作,因此无法解决您的问题,请尝试event.preventDefault();

$(function(){
    $("#nav_container").append('<a id="testID" href="#">Click on me</a>');

    $("#testID").bind("click",function(event){
        event.preventDefault();
        alert("hi");
    });
});

或者其他人建议使用$ .on:

更好
$("#nav_container").on('click', '#testID', function(event){
    event.preventDefault();
    alert('hi');
});