2

どのアプローチが優れているのか、そしてその理由は次のとおりです。A)多数のセレクターを備えたクリック時に1つのドキュメント、B)クリック時に複数のドキュメント。

また、Aのセレクターに制限はありますか?ありがとう。

A)

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

});

vs

B)

$(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()メソッドがあります。

パフォーマンス(セレクター) = IDvsクラスvsタグvs疑似vs.属性セレクター ==> http://jsperf.com/id-vs-class-vs-tag-selectors/2

複数のセレクターで見られる利点:

  • 使いやすい
  • 書き込みを減らす(コードのコンパクトさ)
  • すべてのIDに同じ機能がある場合は、YAGNIを完全にサポートします。http ://c2.com/cgi/wiki ? YouArentGonnaNeedIt

おすすめ

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 に答える