jQuery给动态添加的元素绑定事件的方法

jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定。在1.7版本以前使用live。但是在1.8版本以后推荐使用on。这里介绍jQuery中如何给动态添加的元素绑定事件
在实际开发中会遇到要给动态生成的html元素绑定触发事件的情况

<div id="testdiv">   <ul></ul> </div> 

需要给<ul>里面动态添加的<li>标签添加click事件

方法一:绑定live事件(live事件只在jquery1.9以下才支持,高版本不支持)。

jquery 1.7版以前使用live动态绑定事件

$("#testdiv ul li").live("click",function(){ 
  // alert('这里是动态元素添加的事件');
});
方法二:利用on()事件绑定 ($(ParentEle).on("click",".thisEle",function(){})
//这里的ParentEle是 thisEle的父辈元素或者祖先元素,ParentEle可以是document,也可以是body等。<br><br><br>//
注意:如果此时调用的函数是外部定义好的函数,那在调用的时候不要加(),不然会跳过点击事件直接触发函数
 
jquery 1.7版以后使用on动态绑定事件
$("#testdiv ul").on("click","li", function() { 
     //do something here 
  alert('这里是动态元素添加的事件');
 });
 
//主动触发某个<li>的click事件
  
// $("#testdiv ul li[name='apple']").trigger("click"); 
$("#testdiv ul li").live("click",function(){
});
posted @ 2017-02-16 17:11  bxzjzg  阅读(960)  评论(0编辑  收藏  举报