我一直在使用他们很长一段时间,但大部分时间里,我更喜欢较短的一个,不过,我只是想真正深入到细枝末节。 我会一直在创造马车代码,我不想作出贡献,并在网上传播懒洋洋地-DONE码出。
所以告诉我:
什么是它们之间的显著优势/劣势,还是只是像冰淇淋,口味不同,但相同的“感觉良好”的效果?
鼓励每个人抛出关于此事的专家意见。
提前谢谢了。
我一直在使用他们很长一段时间,但大部分时间里,我更喜欢较短的一个,不过,我只是想真正深入到细枝末节。 我会一直在创造马车代码,我不想作出贡献,并在网上传播懒洋洋地-DONE码出。
所以告诉我:
什么是它们之间的显著优势/劣势,还是只是像冰淇淋,口味不同,但相同的“感觉良好”的效果?
鼓励每个人抛出关于此事的专家意见。
提前谢谢了。
bind()
在1.0的溶液中加入, live()
在1.3, delegate()
中1.4.2和on()
在1.7。
由于1.7 on()
是优选的用途和live()
已被弃用,不建议在所有。 如果你正在使用1.3使用bind()
,而不是live()
和1.4.2使用delegate()
而不是live()
和1.7使用on()
而不是任何其他人。
关于$("selector").click
。 摘自click()
文档 :
在头两个变型中,该方法是用于.bind快捷方式(“点击”,处理程序),以及用于。对(“点击”,处理程序),为的jQuery 1.7。 在第三个变化,当。点击()被调用时不带参数,它是.trigger快捷方式(“点击”)。
为什么要使用上(),而不是别人?
on()
是最新加入,在1.7版本加入jQuery库。 on()
有几个方法签名,使其能够提供同样的结果以前的版本做的,但改善和优化。 从引用文档 :
在jQuery 1.7中,。对()方法提供用于附接的事件处理程序所需的所有功能。
有bascialy没有必要使用bind()
或delegate()
了。 相信它会工作,应该在使用这些方法没有坏处,但我总是假设最新增加的优化和改进以往任何版本的缺点的(除非文档另有说明,因为它是在案件live()
在此基础上,我会建议使用on()
来代替。
之所以live()
不推荐全站更多的是与它的缺点。 从引用live()
文档 。
不再推荐.live()方法的使用,因为jQuery的更高版本提供没有它的缺点更好的方法。 具体而言,以下问题出现在使用.live()的:
- jQuery的尝试调用.live()方法,这可能是耗时的大型文档之前检索由选择器指定的元素。
- 链接方法不被支持。 例如,$( “A”)找到( “异地,.external。”)生活(...)。 是无效的,并没有按预期工作。
- 由于所有.live()事件在文档元素连接,事件需要他们处理之前的最长和最慢的可能路径。
- 在移动的iOS(iPhone,iPad和iPod Touch)的Click事件不会泡到文档正文的大部分元素,不能用.live()不采用以下解决方法之一,可以使用:
- 使用本身可点击元素诸如或按钮,这两个做泡沫文档。
- 使用。对()或.delegate()附连到下面document.body的水平的元件,由于移动的iOS确实在体内气泡。
- 应用CSS样式光标:指针需要气泡点击(或包括document.documentElement中父母)的元素。 但是请注意,这将在元件上禁止复制\粘贴并导致触摸时它被突出显示。
- 在事件处理程序调用event.stopPropagation()处于停止的事件处理程序安装文件中下无效; 该事件已经传播到文档中。
- 该.live()方法与其他事件方法的方式,可奇怪的,例如,$(文件).unbind(“点击”)删除任何呼叫连接到.live所有点击处理程序()进行交互!
还有就是文档中有很多更多的好东西,但。
其他资源
点击()
绑定()
生活()(不使用)
代表()
上()
在功能方面在特定情况下,没有什么区别。 然而, .on
优于.bind
在jQuery 1.7,并作为.click
-它只是一个普通的事件处理程序的简写。