jQuery动态生成元素无法绑定事件的解决办法

第一篇博文,进这个大观园,一来希望自己的一些经验可以帮到大家,二来也乐于跟大家交流分享。文中如有谬误,恳请大方之家指正。

昨天动态生成了一系列的<a>,生成后用class选择器选择出来后,发现只有不是动态生成的代码,才可以注册onclick。即

当我用$(".MyClass").click(function(){

  //statements.

});

注册事件后,动态生成的元素并不能执行事件中的方法。

然后到网上查找,说用bind来绑定是不行的。要用live方法。

我一试,发现自己的版本1.11.1不支持此方法,而是用on方法代替了。

接着又试on方法,还是不行。

末了,试了一种方法,发现可以执行。代码如下:

//解锁按钮
var aUnlock=$("<a>").addClass("unlock").attr("href","#").attr("onclick","unlock(event,8888)");
//将<a>添加到li,并添加到列表中。
 $("<li>").addClass("opt").wrapInner(aModify).append(aUnlock).appendTo(ulList);

unlock是一个函数,带两个参数,可以把自己想要添加的属性添加到这里面。

这样,动态加载的元素就可执行注册的方法了。
如果大家有什么更好的解决方法烦请多多交流沟通。

 

posted on 2014-11-12 10:04  帝华  阅读(338)  评论(0编辑  收藏  举报

导航