首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$(sel).bind("click",$(sel).click(,$(sel).live("click",$(sel).on("click“))之间有什么显著差异?

$(sel).bind("click",$(sel).click(,$(sel).live("click",$(sel).on("click“))之间有什么显著差异?
EN

Stack Overflow用户
提问于 2012-06-21 22:58:49
回答 2查看 587关注 0票数 3

我已经用了很长一段时间了,但大多数时候,我更喜欢更短的,不过,我只是想深入了解细节。我可能已经创建了错误的代码,我不想贡献和传播懒洋洋的代码在网络上。

所以告诉我:

它们之间有什么显著的优缺点,或者它就像冰激凌,不同的口味,但同样的“感觉良好”的效果?

鼓励每个人就这一问题发表自己的专家意见。

在此之前,非常感谢您。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-21 23:03:32

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(“单击”,处理程序)和.on(“单击”,处理程序)的快捷方式( jQuery 1.7 )。在第三个变体中,当不带参数地调用.click()时,它是.trigger("click")的快捷方式。

为什么使用on()而不是其他的?

on()是最新添加的,它加入了版本1.7中的jQuery库。on()有几个方法签名,使它能够交付相同的结果,以前的版本做,但改进和优化。要引用的话:

从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能。

根本不需要再使用bind()delegate()了。当然,使用这些方法不会有什么害处,但我总是认为,最新的添加是针对以前版本的任何缺点进行优化和改进的(除非文档中有其他说明,比如live())。

基于此,我建议改用on()

不建议使用live()的原因更多的是因为它的缺点。引用live() 的话。

不再推荐使用.live()方法,因为较晚版本的jQuery提供了更好的方法,这些方法没有缺点。特别是,在使用.live()时会出现以下问题:

在调用documents.

  • Chaining ()方法之前,
  • jQuery尝试检索选择器指定的元素,这在大型
  • 方法上可能很费时,因此不支持。例如,$(A).find(“.offsite,.external").live( . );无效且不工作,因为expected.
  • Since所有.live()事件都附加在document元素中,事件在处理它们之前采取尽可能长和最慢的路径。移动iOS (iPhone、iPad和iPod Touch)上的
  • (iPhone、iPad和iPod Touch)单击事件不会对大多数元素的文档体产生气泡,如果不应用以下变通方法之一,就不能与.live()一起使用:
    1. 使用本机可单击的元素,如或按钮,由于这两种方法都可以将document.
    2. Use .on()或.delegate()附加到document.body级别以下的元素,因为移动iOS会在主体内产生气泡。
    3. 应用CSS样式游标:指向需要气泡单击的元素(或父元素(包括document.documentElement) )。注意,这将禁用元素上的复制\粘贴,并使其在touched.

时突出显示。

事件处理程序中调用document.

  • The ()的
  • 在停止附加在文档中较低的事件处理程序方面是无效的;该事件已经传播到 .live()方法,它以可能令人惊讶的方式与其他事件方法交互,例如,$(document).unbind(" click ")删除了通过调用.live()!附加的所有单击处理程序。

不过,文档中还有更多的好处。

附加资源

票数 4
EN

Stack Overflow用户

发布于 2012-06-21 23:01:23

在这种情况下,功能没有差别。然而,.on在jQuery 1.7中比.bind更可取,至于.click,它只是一个通用事件处理程序的缩写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11148019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档