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()
。这只是一个演示,说明了它应该是什么样子,这里我们不想添加多个表单:)