在jquery中委托()vs on()?
我知道delegate()和on()之间的区别,但是我怀疑on()非常流行并且比delegate(更快)更快,因为jquery没有从其库中删除delegate()
。
live()有缺点,然后从jQuery-1.9 version
删除。 此外,如果我们看到on()和delegate()之间的性能,那么on()
比delegate()
快得多。
那么在jQuery中保留delegate()的任何理由?
这是jQuery团队成员在2013年就此问题撰写的内容:
“我们没有弃用
.bind
或.delegate
,我们也没有表明我们会在任何时候删除它们。它们在源代码中只是一行,因此缩小尺寸并不是删除它们的理由。
我们弃用了
.live
因为它有很多我们无法解决的令人困惑的问题。“
基本上,虽然delegate()
已被on()
取代,但由于占用很少的空间(并且不会导致任何问题),因此没有将来弃用delegate()
计划。
从文档 :
从jQuery 1.7开始,.delegate()已被.on()方法取代。
它只是遗留代码。 不要使用它。
我认为这更多地与他们是否想打破使用它的用户有关….在委派处理程序方面我没有看到他们之间的任何性能差异……
因此,建议新代码应使用.on()而不是.delegate
on
意味着取代delegate
。 可能jquery作者可能会花一些时间来使它更加向后兼容。 许多旧插件仍然使用这些方法。 可能这可能是保留它的原因。
您可以在on()
方法的帮助下执行事件绑定和委派。 只是语法不同。
只需访问此链接:
http://learn.jquery.com/events/handling-events/
他们用例子精美地解释了