代表的表现()

时间:2011-09-11 13:03:49

标签: jquery micro-optimization

我一直在使用$("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

上面两个例子中的哪一个更快,如果一个比另一个快,为什么

1 个答案:

答案 0 :(得分:5)

  

如果我将click事件委托给更靠近实际元素的包含元素,例如一个充满按钮的表,这会比将同一事件委托给body更快,因为事件不必冒泡多远?

是的,由于您的建议,它会更快更准确。我认为this是一篇有用的文章,与您的问题相关。