Body hasclass不起作用

时间:2017-04-21 21:19:35

标签: javascript jquery css

所以我的代码应该在一个元素中添加一个类,如果正文有某个类不起作用。它看起来像这样:

if ($("body").hasClass("shifter-open")) {
    $(".scrollheader").addClass("hovered");
}

我认为这是因为Jquery代码使用以下代码将此类(shifter-open)添加到正文中:

$( document ).ready(function() {
    $("body").addClass("shifter shifter-active");

    $('.shifter-handle').click( function() {
        $("body").toggleClass("shifter-open", 1000);
    });
});

有没有办法让我的代码工作?并且可能将这两个代码组合成一个?

2 个答案:

答案 0 :(得分:0)

假设您也想要删除课程,只需模仿身体正在做的事情。您可以在hovered上切换班级.scrollheader,就像正在切换其shift-open班级一样。

$( document ).ready(function() {
    $("body").addClass("shifter shifter-active");

    $('.shifter-handle').click( function() {         //When shifter-handle is clicked
        $("body").toggleClass("shifter-open");       //Toggle "shifter-open" on the body
        $(".scrollheader").toggleClass("hovered");   //Toggle "hovered" on .scrollheader
    });
});

此外,toggleClass()的第二个参数需要boolean来确定是否应激活切换。您1000的第二个参数是永久truthy,因此根本没有理由包含它。

答案 1 :(得分:0)

您的条件:

if ($("body").hasClass("shifter-open")) {
    $(".scrollheader").addClass("hovered");
}

除非您有超时或间隔轮询,否则只会被评估一次。更好的解决方案可能是将这两个部分合二为一。如:

$( document ).ready(function() {
    $("body").addClass("shifter shifter-active");

    $('.shifter-handle').click( function() {
        $("body").toggleClass("shifter-open", 1000);
        $(".scrollheader").toggleClass("hovered");
    });
});

或类似的东西。您可能还想检查toggleClass的文档,因为它似乎没有将整数作为第二个参数