2

2つの呼び出しを1つに統合しようとしていますが、クラスの1つがサブコンテンツに対して持っている「余分な」ためにどのようになっているのかわかりません。

$('.abc').children().not(".xyz").click(function() { //stuff     });
$('#myid').click(function() {   //same stuff    });

通常、私はそうします$('.abc , #myid')が、この場合は影響を受けたくないサブの子があります(とは異なりmyidます)ので、すべてのものを組み合わせることができません。xyz.abc

同じ「もの」関数を書き直さないように、これら2つをマージする最良の方法は何ですか?

4

5 に答える 5

2

1回の呼び出しでそれを行うことが重要な場合は、最初のセレクターを単純化して

$('.abc :not(.xyz)')

それはあなたが使用することを可能にするでしょう

$('.abc :not(.xyz), #myid')
于 2013-03-20T19:45:28.897 に答える
2

名前付き関数はいつでも使用できます

function doStuff() { /* stuff */ }

$('.abc').children().not(".xyz").click(doStuff);
$('#myid').click(doStuff);
于 2013-03-20T19:42:47.823 に答える
1

$('.abc , #myid').addメソッドを使用するのと同様のことを引き続き行うことができます。

$('.abc').children().not(".xyz").add('#myid').click(function(){ /* stuff*/ });
于 2013-03-20T19:45:30.863 に答える
1

あなたが試すことができます:

$('.abc').children().not(".xyz").add('#myid').click(function() {
  // stuff
})
于 2013-03-20T19:44:22.260 に答える
0

あなたはこれを試すことができます:

function doStuff(){
  // your same stuffs
}

$('.abc').children().not(".xyz").click(doStuff);
$('#myid').click(doStuff);
于 2013-03-20T19:43:48.303 に答える