我一直在努力,并一直在寻找解决方案。
背景
我想删除“ customBox disabled”类,并添加“ customBox”类。我尝试了几种方法; .removeClass(“ customBox disabled”)。addClass(“ customBox”),toggle(....,....)以及以下内容,但无济于事。问题在于代码确实已更改为新类,但在程序结束后立即将其还原。但为什么?有专家吗?
$(document).on("click", "#btnStep2", function() {
alert($("#step2").children().children().children().children().eq(1).children().eq(1).attr("class"));
if ($("#step2").children().children().children().children().eq(1).children().children().is(':disabled')) {
alert("disabled");
if ($("#step2").children().children().children().children().eq(1).children().eq(1).hasClass("customBox disabled")) {
$("#step2").children().children().children().children().eq(1).children().eq(1).removeClass();
alert($("#step2").children().children().children().children().eq(1).children().eq(1).attr("class"));
$("#step2").children().children().children().children().eq(1).children().eq(1).addClass("customBox disabled");
alert($("#step2").children().children().children().children().eq(1).children().eq(1).attr("class"));
return false;
}
} else {
alert("enabled");
if ($("#step2").children().children().children().children().eq(1).children().eq(1).hasClass("customBox")) {
$("#step2").children().children().children().children().eq(1).children().eq(1).removeClass();
alert($("#step2").children().children().children().children().eq(1).children().eq(1).attr("class"));
$("#step2").children().children().children().children().eq(1).children().eq(1).addClass("customBox");
alert($("#step2").children().children().children().children().eq(1).children().eq(1).attr("class"));
return false;
}
}
return false;
});
最佳答案
首先,您需要替换所有这些.children方法。只需使用find()方法可使代码更整洁且更易于阅读。
其次,我想向您说明“ disabled”和“ customBox”是两个单独的类。通过查看问题的描述,您只想切换“禁用”类。 “ customBox”类不必执行任何操作。
毕竟,请尝试以下代码。希望能有所帮助
$(document).on("click", "#btnStep2", function() {
var custom_box = $("#step2").find(".customBox");
if (custom_box.length > 0){
custom_box.toggleClass("disabled");
}
});
快乐编码:)
关于jquery - AddClass和RemoveClass恢复为原始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39588027/