Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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/73.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 jQuery on()未在附加的标记上触发_Javascript_Jquery - Fatal编程技术网

Javascript jQuery on()未在附加的标记上触发

Javascript jQuery on()未在附加的标记上触发,javascript,jquery,Javascript,Jquery,我有一种感觉,这是我正在犯的一个令人尴尬的简单错误,但我现在看不出来 我有一个动态添加行的表-每行的最后一列包含一个链接,单击该链接时,应该删除该行。目前,行被添加得很好,但我不明白为什么附加到移除按钮的事件没有触发。我已经删除了要使用console.log()进行测试的删除代码,但在控制台中没有看到任何内容 我知道on()应该与附加的HTML一起工作,我缺少什么 HTML: 名字 第二个名字 年龄 JS: var html=''; html+=''; html+=''; html+=''

我有一种感觉,这是我正在犯的一个令人尴尬的简单错误,但我现在看不出来

我有一个动态添加行的表-每行的最后一列包含一个链接,单击该链接时,应该删除该行。目前,行被添加得很好,但我不明白为什么附加到移除按钮的事件没有触发。我已经删除了要使用console.log()进行测试的删除代码,但在控制台中没有看到任何内容

我知道on()应该与附加的HTML一起工作,我缺少什么

HTML:


名字
第二个名字
年龄
JS:

var html='';
html+='';
html+='';
html+='';
html+='';
html+='';
$('.remove_btn')。在('click',function()上{
log('单击删除按钮');
//$(this.parent().parent().remove();
返回false;
});
$('#添加')。在('单击',函数()上){
$(“#人”).append(html);
返回false;
});

这只是一个订单问题。在调用代码注册onclick事件之前,需要附加HTML

$('#add').on('click', function() {
    $('#people').append(html);

    $('.remove_btn').on('click', function() {
           console.log('REMOVE BUTTON CLICKED');            
               //$(this).parent().parent().remove();
                        return false;
                });


    return false;
});

这只是订单问题。在调用代码注册onclick事件之前,需要附加HTML

$('#add').on('click', function() {
    $('#people').append(html);

    $('.remove_btn').on('click', function() {
           console.log('REMOVE BUTTON CLICKED');            
               //$(this).parent().parent().remove();
                        return false;
                });


    return false;
});

您正在将
click
事件处理程序绑定到所有当前DOM元素。对于将来动态创建的元素的事件委派,需要使用
.on()
的此语法

$("#people").on("click", ".remove_btn", function(e) {
  console.log('REMOVE BUTTON CLICKED');         
  e.preventDefault();
  return false;
});

您需要在未修改的父元素中使用
.on()
。在这种情况下,我使用了
#people
。但是,您也可以使用更接近的父元素缩小它的范围。

您正在将
单击事件处理程序绑定到所有当前DOM元素。对于将来动态创建的元素的事件委派,需要使用
.on()
的此语法

$("#people").on("click", ".remove_btn", function(e) {
  console.log('REMOVE BUTTON CLICKED');         
  e.preventDefault();
  return false;
});

您需要在未修改的父元素中使用
.on()
。在这种情况下,我使用了
#people
。但是,您也可以使用更接近的父元素缩小其范围。

当您对dom中不可用的元素应用事件时,会发生这种情况。因此,您必须将事件委托给其最近的现有父级:

$('table#people').on('click', '.remove_btn',function() {

当您对dom中不可用的元素应用事件时,就会发生这种情况。因此,您必须将事件委托给其最近的现有父级:

$('table#people').on('click', '.remove_btn',function() {

不幸的是,这不是OP的要求for@cIph3r,那就更糟了。这是重新绑定事件句柄不幸的是,OP不是这么问的for@cIph3r,那就更糟了。这是重新绑定事件处理程序多谢了,伙计-就是这样!最近才转到on(),所以要习惯它。干杯(允许我在5分钟内接受答案)多谢了,伙计,就是这样!最近才转到on(),所以要习惯它。干杯(如果允许,我将在5分钟内接受答案)