欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jquery on()绑定事件无效

程序员文章站 2022-07-12 22:42:03
...

今天在做项目的过程中遇到了jquery 动态生成的元素绑定事件的问题。


首先我目前所了解的是

(1)用bind或者直接给元素加事件(例如click)这种的是对于页面初始化就有的元素

(2)对于后面动态生成的元素无效,例如append(某动态生成元素),这种用以上的方法无效


为了使动态生成的元素能绑定事件,我网上查了一番,听说on可以动态绑定事件,我试了一下没有效果,纠结了很久,最终发现原因。

jquery使用on绑定事件到动态生成的元素上时,不能对动态生成的对象操作,需要从其父节点追溯到本身。

下面是js:

//有效,追溯到本身
$('#centerUlList').on("click","li",function(){
 	    $('input[name="godate"]').val($(this).attr("date"));
 	    searchform.action="searchsimple.action";
 	    searchform.submit();
}); 

//无效                                               
$('#centerUlList li').on("click",function(){
 	    $('input[name="godate"]').val($(this).attr("date"));
 	    searchform.action="searchsimple.action";
 	    searchform.submit();
}); 


综上动态生成的元素绑定事件用on要注意追溯到元素本身,另外一点on的性能高于live(),bind(),delegate()等方法。