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

标签 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,它会成功添加该类...但显然我无法再次将菜单滑出。

最佳答案

正如@Rory McCrossan 和@Turnip 建议的那样,我的点击绑定(bind)错误。

答案是添加unbind(),像这样:

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

现在可以使用了!

编辑: 根据@Turnip 的说法,如果我的代码中的所有内容都正确完成,则不需要这样做,但现在我只想使用 YOLO 并将其用于我的 POC tmrw。

编辑2: 好了,找到冤枉路了。我确实加载了这个脚本两次:

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

当改变它时,它只加载一次它在没有 .unbind() 的情况下工作

关于jquery - toggleClass 仅将 'class' 作为属性添加到 HTML 元素 - 而不是 acctuall 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45817866/

相关文章:

javascript - 单击时突出显示表格单元格

css - 更改 primefaces Accordion 图标

jquery - 使用 jquery 将表单值传递到 iframe 的 src url

javascript - 通过 ajax 加载内容时 jQuery 的本地时间插件失败

javascript - 使用 JavaScript 将图像上传到 Canvas?

javascript - 工具提示 z-index 位置或其他?

javascript - 如何使用 CSS 样式将 HTML 表格打印或导出为 PDF,同时保持页面大小(与设备无关)?

css - 要在标题 div 上创建可点击的按钮,我应该使用哪些标签?

javascript - 分割html元素并获取文本

javascript - 当某个 div 悬停时获取正确的段落以显示