1

私はたくさんのチェックボックスを持っています。それらのほとんどは 1 つのクラス (クラス a またはクラス b) を持っていますが、中には両方のクラスを持っているものもあります。

<input type="checkbox" class="a b">

これらのクラスの両方に同じ jquery イベント (変更) があります。

$('.a').change(function(e){ // whatever });
$('.b').change(function(e){ // whatever });

私のコードでは、.each() の入力からイベント「変更」をトリガーする必要があります。これは、上記の任意のケースのチェックボックスが存在する可能性があることを意味します。

$(this).trigger('change');

私の問題は、両方のクラスを持つチェックボックスからトリガーすると、2つの異なるイベントがトリガーされることです(そしてそれはロジックです)。しかし、1 つのクラスの選択された変更イベントをトリガーしたいだけです。

これを指定する方法はありますか?

4

2 に答える 2

2

このように指定してみませんか?

$('.a:not(".a.b")').change(function(){
//only a
});

$('.a.b').change(function(){
//both
});

$('.b:not(".a.b")').change(function(){
//only b    
});
于 2013-01-14T10:10:23.800 に答える
0

両方のクラスを公開する要素をフィルタリングすることで、問題を修正できます。たとえばb、要素がクラスも公開していない場合にのみ、クラスのハンドラーを登録しaます。

$(".a").change(function(e) { /* whatever */ });
$(".b:not(.a)").change(function(e) { /* whatever */ });
于 2013-01-14T10:11:12.633 に答える