我很困惑你何时应该使用事件委托而不是开箱即用的JQuery事件处理。
我总是想要使用事件处理程序,因为它在JQuery中非常容易:
例如:
$("button#submit").click(function () {
$(this).css("disabled", "true");
});
事件委托的编写并不是那么复杂:
$("button#submit").live("click", function() {
$(this).css("disabled", "true");
});
但它似乎并不直观。
关于何时使用事件委托有一个简单的经验法则吗?我想我真的不明白它的意义。
答案 0 :(得分:3)
当您要向需要分配该事件的页面动态添加元素时,请使用.live()。 (注意.live()仅适用于选择器)
对所有其他情况使用.click()(或其他任何事件)
答案 1 :(得分:2)
您应该在以下情况下使用事件委派:
Using Event Utility and Event Delegation to Improve Performance更多地讨论了这一点(即使文章使用YUI,这些想法仍然适用)。
答案 2 :(得分:1)
根据this,当存在大量绑定元素时,它就是速度。
答案 3 :(得分:0)
我发现我尽可能使用直播。这样,如果我稍后添加动态内容,我根本不需要更改代码。