.removeClass无效,并阻止.addClass工作

时间:2016-07-26 14:33:20

标签: javascript jquery css

我很难找到任何有助于解决此问题的信息。我已经尝试了其他一些适用于其他人的选项,但它似乎并没有起作用。

我有这样的div设置:

    <div class="dynamic-content">
        <div class="button"></div>
        <div class="content"></div>
    </div>

我尝试做的是在单击.button时通过添加特定类,然后再次单击.button删除该动画并删除特定类,将动画内容应用于.dynamic-content。

这是我的jQuery:

    $(".button").on('click', function() {
        if ($(".dynamic-content").hasClass('open')) {
            $(".dynamic-content").removeClass('open'));
        } else {
            $(".dynamic-content").addClass('open'));
        }
    }

如果我不包含.removeClass()部分,则addClass可以正常工作。但是,只要我放入.removeClass,在检查器中,我就可以看到.dynamic-content点亮了,好像有针对性并且由JS采取行动,但没有任何反应,甚至没有.addClass正在工作。

3 个答案:

答案 0 :(得分:3)

这是因为你的代码中有错误:

INSERT INTO locTbl VALUES ('A', B', 100.0);  //Good to insert

loc1 | loc2 | dist
-----+------+-----
A     B      100.0

INSERT INTO locTable VALUES('B','A',100.0); //Produce an error

删除额外的空格,你很高兴。

您还可以使用 $(".dynamic-content").removeClass('open')); //^Remove extra brace

优化代码
.toggleClass()

答案 1 :(得分:0)

JS:

$(".button").on('click', function() {
        if ($(".dynamic-content").hasClass('open')) {
            $(".dynamic-content").removeClass('open');
        } else {
            $(".dynamic-content").addClass('open');
        }
    });

答案 2 :(得分:0)

条件有效吗?因为“.dynamic-content”是一个类,所以jQuery将获得它找到的第一个类。也许页面上还有另一个符合你条件的那个?

正如人们所说,可能发生的另一件事是你的额外“)”正在破坏你的功能。

无论哪种方式,我都会尝试toggleClass,它完全符合你的条件:

$(".button").on('click', function() {
    $(".dynamic-content").toggleClass("open")
}

如果该类在那里,它将删除它,如果没有,则添加它。