所以,请告诉我:
它们之间有哪些明显的优缺点,或者就像冰淇淋一样,口味不同但效果相同吗?
鼓励每个人就这个问题发表专业意见。
非常感谢提前。
所以,请告诉我:
它们之间有哪些明显的优缺点,或者就像冰淇淋一样,口味不同但效果相同吗?
鼓励每个人就这个问题发表专业意见。
非常感谢提前。
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()
文档中可以看到:
在前两种情况下,此方法是绑定事件的快捷方式,等同于 jQuery 1.7 的 .on("click", handler)。在第三种情况下,当不带参数调用 .click() 时,它是 .trigger("click") 的快捷方式。
为什么要使用on()而不是其他方法?
on()
是jQuery库1.7版本中最新添加的成员。 on()
拥有几个方法签名,使其能够提供与以前版本相同但改进和优化的结果。引用文档中的话:
自jQuery 1.7版起,.on()方法提供了所有所需的功能以附加事件处理程序。
基本上不需要再使用bind()
或delegate()
了。当然,它们也可以正常工作,并且使用这些方法应该没有任何问题,但我总是认为最新的添加都是针对以前版本的缺点进行了优化和改进(除非文档中另有说明,就像live()
一样)。
基于此,我建议改用on()
。
live()
不被全面推荐的原因更多是与它的缺点有关。引用自live()
文档。
然而,文档中还有更多好东西。
live()
方法似乎是个例外,无论jQuery的版本如何,我都被告知永远不要使用它。 - Nopelive()
,仅凭名称就很难理解它真正的作用。 - Dexter Huindalive()
问题时并不完全正确。它更与事件冒泡的工作方式有关,以及live()
默认情况下如何处理此问题。我会继续收集更多信息,并为了完整性编辑这篇文章。 - Nope在那种特定的情况下,功能上没有什么区别。然而,从jQuery 1.7开始,.on
比.bind
更受青睐,至于.click
- 它只是一个常见事件处理程序的速记。
on
)。 - Thilobind()
、click()
和on()
。 - VisioN