jquery on()绑定事件无效

来源:互联网 发布:c语言中long什么意思 编辑:程序博客网 时间:2024/06/05 14:44

今天在做项目的过程中遇到了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()等方法。


0 0
原创粉丝点击