jQuery中.bind() .live() .delegate() .on()的区别
来源:互联网 发布:网络监控代理 编辑:程序博客网 时间:2024/05/16 17:27
差别:http://www.sosonemo.me/bindlivedelegate%E8%BF%98%E6%98%AFon%EF%BC%9F-jquery%E4%BA%8B%E4%BB%B6%E7%BB%91%E5%AE%9A%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6.html
.bind()是直接绑定在元素上
.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document DOM节点上。和.bind()的优势是支持动态数据。
.delegate()则是更精确的小范围使用事件代理,性能优于.live()
.on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制
bind的作用是给具体的某个元素绑定事件,比如
给所有的button元素添加了点击事件处理方法。这似乎已经可以完成大部分的事件绑定任务了,然而有一个问题它无法解决–如果某一元素是新添加的怎么办?bind将事件处理函数绑定在了具体的元素上,而新添加的元素身上是没有被绑定处理函数的。也就是说,如果执行完上面的代码后再动态添加一个button元素,新添加的这个button元素是没有被绑定事件处理函数的。
于是,live出现了。对于刚开始接触jquery的人来说,live是一个很神奇的事件绑定方法,无论某一元素已经存在还是将来会被添加到页面中,live都能将事件绑定到它身上。
.delegate()方法将方法绑定到特定的元素而.live()绑定到document根元素。
$('#container').delegate('a', 'click', function() { alert("That tickles!") });jQuery遍历document检索出 $(‘#container’)元素并绑定alert方法同时将click事件和’a'选择符作为参数。当一个事件传递到 $(‘#container’)时,它检验事件类型是否为click并且目标元素同’a'选择符相符。如果通过检验则执行方法。
$('a').live('click', function() { alert("That tickles!") });jQuery在 $(document)元素上绑定alert方法,同时将‘click’和‘a’作为参数。当一个事件传递到document节点时,节点会检验事件类型是否为click同时检验事件的目标元素类型是否同选择符‘a’相匹配。如果检验通过那么执行alert方法。
on()方法
其实在最新版本的jQuery类库中,所有以上方法在后面其实都是调用on()方法,所以,如果你开发最新版本的jQuery,完全可以使用on()方法来处理所有的事件绑定,避免过多的方法调用
- JQuery五:jQuery中.bind() .live() .delegate() .on()的区别
- jQuery 中bind(),live(),delegate(),on() 区别
- jQuery 中bind(),live(),delegate(),on() 区别
- jQuery 中bind(),live(),delegate(),on() 区别
- jQuery 中bind(),live(),delegate(),on() 区别
- jQuery 中bind(),live(),delegate(),on() 区别
- jQuery 中bind(),live(),delegate(),on() 区别
- jQuery 中bind(),live(),delegate(),on() 区别
- JQuery 中bind(),live(),delegate(),on() 区别
- jQuery中.bind() .live() .delegate() .on()区别
- jQuery中.bind() .live() .delegate() .on()区别
- jquery中bind,live,delegate和on的区别
- jQuery中.bind() .live() .delegate() .on()的区别
- jQuery中.bind() .live() .delegate() .on()的区别
- jQuery中.bind() .live() .delegate() .on()的区别
- jQuery中.bind() .live() .delegate() .on()的区别
- jQuery中.bind() .live() .delegate() .on()的区别
- jQuery中.bind() .live() .delegate() .on()的区别
- 站内信设计
- Binary Tree Preorder Traversal
- NYOJ 496 巡回赛
- PL/SQL Developer如何连接64位的Oracle图解
- sqlserver数据导入mysql二: 根据sqlserver表结构创建mysql表的perl代码
- jQuery中.bind() .live() .delegate() .on()的区别
- Oracle中RAISE异常深入分析
- Java处理无法得到上传原始路径的笨办法
- CCArmature动画播放完后执行回调函数的方法
- Mysql 分步查询
- vb 6.0 将sql查询出来的结果保存成excel 解决大数据存储速度
- 【LeetCode】Reverse Words in a String
- 2014年有哪些事情不值得你为之操心
- Vitamio中文API文档(1)