在 jQuery 1.7 之后不推荐使用 live() 和 bind() 的原因是啥

Posted

技术标签:

【中文标题】在 jQuery 1.7 之后不推荐使用 live() 和 bind() 的原因是啥【英文标题】:What are the reasons that live() and bind() are deprecated post jQuery 1.7在 jQuery 1.7 之后不推荐使用 live() 和 bind() 的原因是什么 【发布时间】:2013-04-10 11:08:54 【问题描述】:

在 jQuery 1.7 之后,.live().bind() 已弃用,取而代之的是 .on() 正在使用。这两个都是很棒的功能,就像魅力一样。删除的目的是什么?这背后的技术原因是什么?

为什么推荐使用.on()

【问题讨论】:

What's wrong with the jQuery live method?的可能重复 我最近经常这么说,但是bind()被弃用,unbind()delegate()undelegate() 也没有被弃用。建议改用on()off(),但如果您想支持 1.7 之前的 jQuery 版本,您仍然可以使用“旧”方法。只有 live()die() 被弃用,然后在 1.9 中被删除。 @MohammadAdil,我知道如何使用.on() 而不是.live()。也许你还没有清楚地得到我的问题。 链接的问题确实回答了您对 IMO 提出的问题:“.on() 的另一个优点在于它简化了所有事件” 这就是为什么首选它的原因。所有事件处理都是统一的。 您只需要查看 jQuery 自己的 .live() doco page 就可以了解它被弃用的原因。 (jQuery doco 是任何 jQuery 问题的第一站。) 【参考方案1】:

引用此article:

    您不能将 live 用于可重复使用的小部件。

    stopPropagate() 在直播中不起作用

    直播速度较慢

    Live 不可链接

【讨论】:

以上是关于在 jQuery 1.7 之后不推荐使用 live() 和 bind() 的原因是啥的主要内容,如果未能解决你的问题,请参考以下文章

jQuery1.9+中删除了live以后的替代方法

jquery事件绑定的几种用法

Resig 的 jQuery 1.7 及更高版本的 Live Search redux?

jQuery中的事件方法,使用on()代替live()

jQuery事件绑定的四种方法

jQuery .on()方法