检查稍后将创建的对象的单击

时间:2013-03-08 17:03:57

标签: javascript jquery

好的,如果我有这样的jQuery:

$(document).ready(function(){
    $('#btn1').click(function(){
        //Add stuff to table
        $('#items_table tr:last').after('<tr><td><input type="button" id="btn2" value="second button" /></td>/tr>');
    });
    //Created button above is triggered
    $('#btn2').click(function(){
        alert('btn 2 was clicked');
    });
});

当我点击“btn2”时,什么都不会发生。我想那是因为$(文件).ready()时它不存在?如果我将btn2的js发送到表格行,它可以正常工作。像这样的东西:

$(document).ready(function(){
$('#btn1').click(function(){
    //Add stuff to table
    $('#items_table tr:last').after('<tr><td><input type="button" id="btn2" value="second button" /><script type="text/javascript ..... BLAH $(\'#btn\').click BLAH </script>;
    });
});

想法?

2 个答案:

答案 0 :(得分:5)

使用on让表格将事件委托给稍后可能出现的元素:

$('#items_table').on('click', '#btn2', function(){
    alert('btn 2 was clicked');
});

答案 1 :(得分:0)

使用.on()将事件处理程序附加到父元素,并将选择器作为参数传递。这适用于动态添加的元素......

 $('#items_table').on('click', '#btn2', function(){
    alert('btn 2 was clicked');
 });