我一直在努力,并一直在寻找解决方案。

背景
我想删除“ 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/

10-12 12:24