我一直在使用$("body").delegate(".selector", "click", function() { ... });
一段时间了,我想知道:如果我将click
事件委托给更接近实际元素的包含元素,例如{{1}完全按钮,这会比将同一事件委托给table
更快,因为事件不必冒泡到目前为止?
基本HTML示例:
body
第一个例子,使用<html>
<body>
<table>
<tr>
<td>
<input type="button" value="Delegated element">
</td>
</tr>
<!-- More, identical rows -->
</table>
</body>
</html>
:
body
第二个例子,使用$('body').delegate('input[type="button"]', 'click', function() {
// Do things
});
:
table
上面两个例子中的哪一个更快,如果一个比另一个快,为什么?
答案 0 :(得分:5)
如果我将click事件委托给更靠近实际元素的包含元素,例如一个充满按钮的表,这会比将同一事件委托给body更快,因为事件不必冒泡多远?
是的,由于您的建议,它会更快更准确。我认为this是一篇有用的文章,与您的问题相关。