前端设计

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

2024-04-19

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(){ 

});