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 个不同的事件(这是逻辑)。但我只想触发一个类的选择更改事件。

有没有办法指定这个?

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当元素不公开 class时才为 class 注册处理程序a

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