我知道delegate() and on()之间的区别,但我怀疑on()非常受欢迎且比delegate()更快,那么为什么jquery不会从live()移除delegate()
库。
performance between on() and delegate()有缺点,然后将其从jQuery-1.9 version
中删除。
另外,如果我们看到{{3}},那么on()
比delegate()
快得多。
那么在jQuery中保留delegate()的原因是什么?
答案 0 :(得分:3)
答案 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)