我有下面的jQuery函数,当选中复选框时,它会向元素添加一些类,这些都是好的。 但是如果取消选中该复选框,我想从元素中删除这些相同的类。 我猜它会与.removeClass有关,但我无法弄清楚在哪里添加它 谢谢
function countDouble() {
var d = $("input.double:checked").length;
var s = $("input.single:checked").length;
if (d === 2) {
$(".twoday input:disabled").addClass("disabled");
$(".twoday input:disabled + label").addClass("disabled");
};
if (s === 1) {
$(".oneday input:disabled").addClass("disabled");
$(".oneday input:disabled + label").addClass("disabled");
};
};
jQuery(document).ready(function(){
countDouble();
$(":checkbox").click(countDouble);
});
答案 0 :(得分:0)
“禁用”不是一个类,因为它是一个属性。
祝你好运!答案 1 :(得分:0)
见下面的代码:
$('#myform :checkbox').click(function() {
var $this = $(this);
// $this will contain a reference to the checkbox
if ($this.is(':checked')) {
// the checkbox was checked, call the function to addClass
} else {
// the checkbox was unchecked, call the function to removeClass
}
});
更新:澄清.click
vs .change
,这是一个解释它的答案:
复选框恰好是更改和的特殊情况 click是可互换的,因为你无法触发change事件 没有触发点击。
答案 2 :(得分:0)
以下是您的代码的变体。您可以在条件语句中添加额外的调用以满足您的需求。
function countDouble() {
var d = $("input.double").is(':checked');
var s = $("input.single").is(':checked');
if (d === true) {
$(".twoday input").prop("disabled",true).addClass("disabled");
} else {
$(".twoday input").prop("disabled",false).removeClass("disabled");
}
if (s === true) {
$(".oneday input").prop("disabled",true).addClass("disabled");
} else {
$(".oneday input").prop("disabled",false).removeClass("disabled");
}
}
jQuery(document).ready(function(){
$('input[type=checkbox]').change( function() {
countDouble();
});
});