Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在检查稍后将创建的单击对象_Javascript_Jquery - Fatal编程技术网

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

Javascript 正在检查稍后将创建的单击对象,javascript,jquery,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>

好的,如果我有这样的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');
    });
});
$(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>;
    });
});
$(文档).ready(函数(){
$('#btn1')。单击(函数(){
//向表中添加内容
$('#items_table tr:last')。在('/tr>')之后;
});
//上面的创建按钮被触发
$('#btn2')。单击(函数(){
警报(“已单击btn 2”);
});
});
当我点击“btn2”时,不会发生任何事情。我想这是因为当$(document).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" /></td>/tr>');
    });
    //Created button above is triggered
    $('#btn2').click(function(){
        alert('btn 2 was clicked');
    });
});
$(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>;
    });
});
$(文档).ready(函数(){
$('#btn1')。单击(函数(){
//向表中添加内容
$(“#items_table tr:last”)。之后(“用于让表将事件委托给稍后可能出现的元素:

$('#items_table').on('click', '#btn2', function(){
    alert('btn 2 was clicked');
});
用于让表将事件委托给以后可能出现的元素:

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

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

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

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

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

您需要将它包装在一个
$(函数({..btn2 code}
,它相当于
$(文档)。ready(函数(){
)您需要将它包装在一个
$(函数({..btn2 code}
,它相当于
$(文档)。ready(函数(){
为了澄清这一点,您可以使用“on”,但此解决方案的关键是,on的第二个参数是在触发事件时运行的选择器,而OP的原始代码是在document.ready上运行一次并找到0个元素的选择器(因此从不绑定单击处理程序)。为了澄清,您可以使用“on”,但此解决方案的关键是,on的第二个参数是在触发事件时运行的选择器,而OP的原始代码是在document.ready上运行一次的选择器,并找到了0个元素(因此从不绑定单击处理程序).这个答案正是dystroy在你之前三分钟发布的。这个答案正是dystroy在你之前三分钟发布的。