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