toggleClass只将'class'作为属性添加到HTML元素 - 而不是acctuall类

时间:2017-08-22 12:37:19

标签: jquery html css

我有一个奇怪的问题。我之前使用过toggleClass并且工作得很好。但是现在只有'class'属性被添加到元素但没有实现类。像这样:

$("#slideButtonMenu").click(function(){
  $("#sidebar").toggleClass("slideLeft");
});
.slideLeft {
  left: -220px;
}

这是我在检查元素时得到的。在点击“#slideButtonMenu”之前:

<aside id="sidebar"> == $0

单击按钮时/之后:

<aside id="sidebar" class> == $0

首次点击后想要的结果:

<aside id="sidebar" class="slideLeft"> == $0

我真的不知道== $0的意思,但我认为它不会影响这一点。如果我将toggleClass更改为addClass,它会成功添加类...但是我显然无法再将菜单滑回。

1 个答案:

答案 0 :(得分:2)

正如@Rory McCrossan和@Turnip所说,我的点击被错误地绑定了。

答案是添加unbind(),如下所示:

$("#slideButtonMenu").unbind().click(function(){
    $("#sidebar").toggleClass("slideLeft");
});

立即行动!

编辑: 根据@Turnip的说法,如果我的代码的所有内容都正确完成,那么就不需要了,但是现在我只是为了我的POC tmrw而选择YOLO。

EDIT2: 好的,找到了错误。我确实加载了这个脚本两次:

$("#slideButtonMenu").click(function(){
    $("#sidebar").toggleClass("slideLeft");
});

更改后,只有在没有.unbind()

的情况下才能加载