有人可以解释为什么委托(delegate)看起来比别名绑定(bind)或 on() 更快吗?
这是一个测试用例:
$('p').on('click',$.noop); //80% slower
$('p').click($.noop); //84% slower
$(document).delegate("p", "click",$.noop); //fastest
检查jquery源,似乎在绑定(bind)任何事件之前,jquery检查委托(delegate)。
这是正确的说法还是还有其他内容?
最佳答案
您犯的错误是认为只有一个 p 元素。
我又添加了一个测试,只有console.log($('p').length);
,结果显示测试中可见7个p,其可见性显然不受限制到您在准备代码中构建的 HTML。
这意味着前两个函数必须再进行 7 次绑定(bind)。
关于jquery - 委托(delegate)是最快的绑定(bind)方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16044643/