我正在构建一个包含大量事件绑定的HTML5移动应用。因为它还有一个由于数据绑定而经常更改的大型DOM,事件的直接绑定( jQuery.bind 或 addEventListener )可能不是一个好的选择。有什么权衡:
// jQuery.bind
$("div").live("click", fnName);
// Inline
<div onclick="fnName(this);"></div>
虽然我对Mobile WebKit的具体情况最感兴趣,但我有兴趣了解其他浏览器的情况。
答案 0 :(得分:2)
.delegate()
比.live()
更快,它可能是您的选择。您可以阅读更多here。
答案 1 :(得分:2)
.live()示例比onclick版本更快,使用的内存更少。
每次执行onclick="fnName(this);"
时,您都在创建一个新功能,并且数千个相同的功能具有非零内存占用。如果您使用onclick
,则创建每个div也需要更多时间。
.live()和.delegate之间的区别可能很小,但你应该尽可能使用.delegate()。