我有很多复选框。他们中的大多数都有一个班级(班级a或班级b),但其中一些班级都有班级。
<input type="checkbox" class="a b">
我对这两个类都有相同的jquery事件(更改)。
$('.a').change(function(e){ // whatever });
$('.b').change(function(e){ // whatever });
在我的代码中,我必须从.each()中的输入触发事件“更改”。这意味着可以存在上述任何情况的复选框。
$(this).trigger('change');
我的问题是,当我从具有两个类的复选框触发它时,它会触发2个不同的事件(和它的逻辑)。 但我只是想触发一个类的选定更改事件。
有没有办法指定这个?
答案 0 :(得分:2)
为什么不指定这样的?
$('.a:not(".a.b")').change(function(){
//only a
});
$('.a.b').change(function(){
//both
});
$('.b:not(".a.b")').change(function(){
//only b
});
答案 1 :(得分:0)
您可以通过过滤我们公开这两个类的元素来解决您的问题。例如,如果元素不公开类b
,则仅注册类a
的处理程序:
$(".a").change(function(e) { /* whatever */ });
$(".b:not(.a)").change(function(e) { /* whatever */ });