标签:sel 无效 span 点击 动态 添加 data append delegate
<ul> <a href="#"><li>1111111</li></a> <a href="#"><li>22222</li></a> <a href="#"><li>33333</li></a> <a href="#"><li>44444</li></a> <a href="#"><li>555555</li></a> </ul> <script> $("a").bind("click",function(){ alert("ok") }); </script>
例如当我们用bind为a元素绑定事件时,有多少a元素,就是绑定多少次事件 ,这样比较消费性能
这种绑定方式有以下缺点:
1)它会绑定事件到所有选出来的元素上 ,例如上面的a元素
2)当页面加载完成是,才可以进行bind(),所以效率较低
3) 不可以为动态创建的html元素绑定事件,即动态创建的html用bind绑定是无效的
live(type,[data],fn) 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的
以上面的例子为例:
$("a").live("click",function(){ alert("ok") });
<ul> <a href="#"><li>1111111</li></a> <a href="#"><li>22222</li></a> <a href="#"><li>33333</li></a> <a href="#"><li>44444</li></a> <a href="#"><li>555555</li></a> </ul> <input type="button" id="btnAdd" value="添加新的元素" />
$("#btnAdd").on("click",function(){ $("ul").append("<a id=‘ltLast‘ href=‘#‘‘><li>我是后添加的了哦</li></a>"); }); //动态创建的html绑定事件需要用到delegate方法 $("ul").delegate("#ltLast","click",function(){ alert("可以点击我么"); });
jQuery中 .bind() .live(). delegate() . on() 的区别
标签:sel 无效 span 点击 动态 添加 data append delegate
原文地址:http://www.cnblogs.com/hhda/p/6429994.html