Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Jquery .on()不处理动态添加的元素_Jquery - Fatal编程技术网

Jquery .on()不处理动态添加的元素

Jquery .on()不处理动态添加的元素,jquery,Jquery,我有以下代码: jQuery(function($){ $( '.comment-form' ).submit(function(){ // do stuff }); }); 我希望在动态添加此元素时将其作为目标。因此,我使用: jQuery(function($){ $(document).on('submit', '.comment-form',function(){ // do stuff }); }); 但是动态创建元素时,从不添加事件

我有以下代码:

jQuery(function($){
   $( '.comment-form' ).submit(function(){
      // do stuff
   });
});
我希望在动态添加此元素时将其作为目标。因此,我使用:

jQuery(function($){
   $(document).on('submit', '.comment-form',function(){
      // do stuff
   });
});
但是动态创建元素时,从不添加事件触发器。以下方面是否存在问题:

$(document).on('submit', '.comment-form',function(){
据我所知,这是正确的。

试试看

jQuery(函数($){
$(body).on('submit','comment form',function(){
//做事
});

});检查此项并根据需要更新代码

$(“.add_new”)。单击(函数(){
$(“.form_area”).html(“”);
});
$(文档).on('submit','main_form',function(){
警报(“表格提交”);
});

添加新表单

将事件侦听器绑定到
文档
正文
是不好的做法。@RonvanderHeijden不太好,这是处理动态添加元素的事件绑定的标准方法:可以包含html吗?如果代码不是动态添加的,它会工作吗?您有其他事件处理程序吗
onclick=
/
onsubmit=
内联处理程序?试试这个$('.comment form',body).on('submit',function(){})@freedomn-m当代码不是动态添加时,它可以正常工作。并且没有其他内联处理程序。使用
body
document
之间没有真正的区别-只要调用
$()
中的元素时存在,并且在该元素中添加新元素。使用
html()
将删除以前的表单。改为使用
append()
。这只是一个演示,说明了它应该是什么样子,这里我们不想添加多个表单:)