【发布时间】:2017-01-07 19:07:16
【问题描述】:
假设我需要在<div class="cool-div"> 上设置'click' 事件监听器。假设它有一个祖先。
<div class="cool-ancestor">
...
<div class="cool-div">
...
</div>
我应该使用以下哪个代码来获得更好的性能,为什么?
a) $(document).on('click', '.cool-div', function(){...})
b) $('.cool-ancestor').on('click', '.cool-div', function(){...})
c) $('.cool-div').on('click', function(){...})
情况1
- 页面上只有一个
<div class="cool-div">。
情况2
- 页面上有很多
<div class="cool-div">。
【问题讨论】:
-
绝对直接。
-
click 是 .on( "click", handler ) 的快捷方式,直接会更快。了解更多api.jquery.com/click
-
因为这 1-2 毫秒的差异会改变任何事情
-
我不知道,我得测试一下。但我通常更喜欢
b),因为我不必等待DOMContentLoaded让我的脚本工作。所以即使页面没有完成加载,我的按钮也已经可以工作了。
标签: javascript jquery performance event-handling jquery-events