在jquery中委托()vs on()?

时间:2014-04-07 06:19:03

标签: jquery

我知道delegate() and on()之间的区别,但我怀疑on()非常受欢迎且比delegate()更快,那么为什么jquery不会从live()移除delegate()库。

performance between on() and delegate()有缺点,然后将其从jQuery-1.9 version中删除。 另外,如果我们看到{{3}},那么on()delegate()快得多。

那么在jQuery中保留delegate()的原因是什么?

5 个答案:

答案 0 :(得分:3)

来自the documentation

  

从jQuery 1.7开始,.delegate()已被.on()方法取代。

这只是遗留代码。不要使用它。

答案 1 :(得分:3)

这是jQuery团队成员在2013年撰写的in regard to this issue

  

“我们尚未弃用.bind.delegate,我们也没有表明过   随时删除它们。

     

它们在源中只是一行,因此缩小尺寸并不是删除它们的理由。

     

我们已弃用.live,因为它存在许多我们无法修复的令人困惑的问题。“

基本上,虽然delegate()已被on()取代,但由于它占用的空间非常小(并且不会导致任何空间),因此未来不会弃用delegate()问题)。

答案 2 :(得分:2)

我认为这更多地与他们是否想打破使用它的用户有关....在委派处理程序方面我没有看到它们之间的任何性能差异......

因此,建议新代码应使用.on()而不是.delegate

答案 3 :(得分:2)

on旨在取代delegate。可能jquery作者可能会花一些时间来使它更加向后兼容。许多旧插件仍然使用这些方法。可能这可能是保留它的原因。

答案 4 :(得分:2)

您可以使用on()方法执行事件绑定和委派。只是语法不同。

只需访问此链接:

http://learn.jquery.com/events/handling-events/

他们用例子精美地解释了