3

假设您可以选择将函数应用于单个 DOM 元素或它们的列表:

个人:

$('#element1').click(function () { 
    $(this).hide(); 
    return false; 
});
$('#element2').click(function () { 
    $(this).hide(); 
    return false; 
});
$('#element3').click(function () { 
    $(this).hide(); 
    return false; 
});

与集合:

 $('#element1, #element2, #element3').click(function () { 
    $(this).hide(); 
    return false; 
});

除了编写更少的代码之外,将函数应用于集合是否有任何计算优势?代码会运行得更快吗?

我问的原因是因为我的元素是 JS 对象,我需要单独处理它们。

4

3 回答 3

2

实际上,不,没有明显的区别。如果你非常关注微优化,那么单独绑定它们的运行时间大约是多重选择器的 65%,但是,说真的,只需使用多重选择器 - 它更具可读性和可维护性。

来源:http: //jsperf.com/jquery-selector-performance-problems

于 2012-10-12T13:33:04.583 回答
0

我认为使用第二种方法不会有任何性能改进,如果有任何可以忽略不计的话。

但是,如果您正在查看内存概念,则第二种方法可能会很好,因为只创建了一个内部函数,并且所有三个元素都使用了相同的引用。

于 2012-10-12T13:31:33.757 回答
-1

为什么不只是将代码应用到一个类上并将这个类添加到你的 3 个元素中:)

$('.hide').click(function () { 
    $(this).hide(); 
    return false; 
});

如果您希望不同元素具有相同的行为,我认为向元素添加类比为每个元素注册单击事件更好。

你将拥有这个 html

<a href="#" id="element1" class="hide"></a>
<a href="#" id="element2" class="hide"></a>
<a href="#" id="element3" class="hide"></a>
于 2012-10-12T13:38:42.317 回答