2

我想知道哪种方法更好,为什么:A)点击一个文档,带有许多选择器,B)点击多个文档。

A的选择器也有限制吗?谢谢。

一个)

$(document).on('click', '#a, #b, #c, #d, #e', function(e){

});

对比

二)

$(document).on('click', '#a', function(e){

});


$(document).on('click', '#b', function(e){

});

$(document).on('click', '#c', function(e){

});

$(document).on('click', '#d', function(e){

});

$(document).on('click', '#e', function(e){

});
4

3 回答 3

2

当然是第一种方法,因为它促进了最大的代码重用(因为您不需要为每个选择器重复函数体),因此维护起来最简单。

根据经验,您应该只在函数体不同时将代码分解为单独的函数。

您可以使用的选择器数量没有实际限制,因此不应该考虑。

当然,更好的选择是应用单个类并将您的选择器基于该类:

$(function() {
    $(".myClass").on('click', function() {
        //do something
    });
});​

最好的选择是应用一个受上下文限制的类(由于只选择一个类的效率低下):

 $(function() {
    $(".link", "#context").on('click', function() {
        //do something
    });
});​
于 2012-10-18T03:06:17.450 回答
2

选项A称为多重选择器方法http://api.jquery.com/multiple-selector/ -选择所有指定选择器的组合结果

您可以指定任意数量的选择器组合成一个结果。这种多表达式组合器是选择不同元素的有效方法。返回的 jQuery 对象中的 DOM 元素的顺序可能不相同,因为它们将按文档顺序排列。此组合器的替代方法是 .add() 方法。

性能(选择器) = id vs 类 vs 标签 vs 伪 vs. 属性选择器 ==> http://jsperf.com/id-vs-class-vs-tag-selectors/2

我看到多个选择器的优点:

推荐

class如果他们都做同样的事情,请考虑使用属性而不是这么多的 id

像这样

$(function() {
    $(".classname").click(function() {

    });
});​
于 2012-10-18T03:19:36.200 回答
0

我同意你的A方法,

为什么你不使用 jquery 选择器?如果每个项目都有相同的功能,则可以使用 jquery 选择器并在每个项目中提供相同的类名,代码应如下所示:

<script>
    $(document).ready(function(){
         $(".item").click(function(){
            #your code here...
})
})
</script>

其他方式,您可以创建一些函数,然后将参数发送给您的函数,这样您的代码就更少了,效率更高。我错了吗?

于 2012-10-18T03:15:41.617 回答