3

我目前正在通过 CodeSchool.com 学习 jQuery,他们提到这样做更好:

$(document).ready(function() {
    $(".exampleclass").on('click', 'button', function() {
        //some method
    });
});

而不是:

$(document).ready(function() {
    $(".exampleclass button").on('click', function() {
        //some method
    });
});

不过,他们没有给出任何理由。据我所知,两者之间似乎没有区别,实际上我发现后者更容易。

第一个代码块更容易接受是否有特殊原因?它运行得更快,还是有什么特别的优势?

4

1 回答 1

4

主要区别在于前者也可以处理动态添加button的 s,因为它遵循事件委托模型。

功能上的区别在于前者button在脚本执行时将一个单击处理程序附加到 dom 中存在的每个元素,而后者将单个处理程序附加到.exampleclass元素,当元素内发生事件并到达exampleclass元素通过事件传播它测试目标元素再次在这种情况下传递的选择器button如果测试成功,则调用注册的处理程序

于 2013-08-21T03:22:53.067 回答