代表的表现()

Boj*_*les 3 jquery micro-optimization

我已经使用$("body").delegate(".selector", "click", function() { ... });了一段时间了,我想知道:如果我将click事件委托给更接近实际元素的包含元素,例如一个table完整的按钮,这会比将同一事件委托给更快body,事件不必泡到目前为止?

基本HTML示例:

<html>
    <body>
        <table>
            <tr>
                <td>
                    <input type="button" value="Delegated element">
                </td>
            </tr>
            <!-- More, identical rows -->
        </table>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

第一个例子,使用body:

$('body').delegate('input[type="button"]', 'click', function() {
    // Do things
});
Run Code Online (Sandbox Code Playgroud)

第二个例子,使用table:

$('table').delegate('input[type="button"]', 'click', function() {
    // Do things
});
Run Code Online (Sandbox Code Playgroud)

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

max*_*son 5

如果我将click事件委托给更接近实际元素的包含元素,例如一个充满按钮的表,这会比将同一事件委托给body更快,因为事件不需要冒泡到目前为止?

是的,根据你的建议,它会更快更准确.我认为是一篇有用的文章,与您的问题相关.