这几种方法都是绑定事件用到的,但是他们之间有些差别

bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数

例如:

    <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")
});

live是通过冒泡的返航时来绑定事件的,更适合列表页,也可以绑定动态的html,但是目前最新版本的jquery已经不支持live事件绑定了

delegate(selector,[type],[data],fn) 指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数

    <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="添加新的元素" />

点击添加新元素按钮,添加一个li元素,并为新添加的li元素绑定事件,代码如下:

$("#btnAdd").on("click",function(){
$("ul").append("<a id='ltLast' href='#''><li>我是后添加的了哦</li></a>"); }); //动态创建的html绑定事件需要用到delegate方法
$("ul").delegate("#ltLast","click",function(){
alert("可以点击我么");
});

.delegate()主要是通过事件代理的方式,一般动态创建的html绑定事件会用到这种方式

on(events,[selector],[data],fn) 在选择元素上绑定一个或多个事件的事件处理函数

.on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制,但是不能为动态的html绑定事件;

最新文章

  1. BZOJ3746 : [POI2015]Czarnoksiężnicy okrągłego stołu
  2. Facebook内部分享:25个高效工作的小技巧
  3. IOS获取摄像和本地中的资源
  4. django1.6之创建用户
  5. Hadoop入门--HDFS(单节点)配置和部署 (一)
  6. C primer plus 读书笔记第二章
  7. javascript对象继承的实现
  8. 【测试Json的多空格问题】
  9. 常见LINQ语句学习
  10. 《Windows核心编程》第一讲 对程序错误的处理
  11. 轻松理解python中的闭包和装饰器 (下)
  12. WPF的TextBox水印效果详解
  13. 关于js赋值给input解析
  14. springboot中使用自定义两级缓存
  15. 问题之Spring MVC配置后,可以打开jsp页面,但打不开html页面
  16. JavaScript Uncaught TypeError: Cannot read property &#39;value&#39; of null
  17. 手撸代码实现equals方法
  18. ORM基本操作回顾
  19. flex布局下overflow失效问题
  20. Pytorch复现Faster-RCNN

热门文章

  1. java中高级写法
  2. args *args **kwargs区别
  3. github-readme.md-格式
  4. C++中面向对象的理解
  5. hihocoder1260,1261 (HASH经典题)
  6. 高次同余方程模板BabyStep-GiantStep
  7. 洛谷P1038 神经网络==codevs1088 神经网络
  8. Win7程序运行出现Windows Based Scrip Host 已停止工作问题的解决方法
  9. Arrays数组工具类中存在的坑!
  10. 为什么要对url进行encode