【发布时间】:2014-03-26 05:14:03
【问题描述】:
先检查元素是否存在,然后绑定事件处理程序是否更快,如下所示:
if( $('.selector').length ) {
$('.selector').on('click',function() {
// Do stuff on click
}
}
还是干脆做更好:
$('.selector').on('click',function() {
// Do stuff on click
}
所有这些都发生在文档准备就绪时,因此延迟越少越好。
【问题讨论】:
-
if( $('.selector').length ) { $('.selector').on('click',function() { // Do stuff on click } }会慢得多,因为选择器被评估了两次......如果你缓存它,我认为它不会有太大的不同 -
如果速度更快,函数开头会有一个测试。在分析之前添加这样的测试会阻碍可读性以获得未测量的性能增益,这将是一种非常过早优化的情况。
-
$('.selector').on('click',function() { // Do stuff on click } 如果元素存在则绑定,否则不存在。所以这样更快。
-
@Bharadwaj 您可以添加您的评论作为答案。
标签: javascript jquery performance