确定是否添加或删除了toggleClass类

时间:2018-05-10 19:31:06

标签: javascript jquery

使用jQuery,我使用toggleClass()

在我的菜单中添加/删除一个类

我想知道是否添加或删除了该类。我读到有第二个参数状态,但这似乎是指定只添加或删除而不是返回实际完成的内容

我需要这样的东西

 $el.toggleClass(sidebarCollapsed, addOrRemove);
                 if (addOrRemove) {
                    sessionStorage.setItem("sidebarState", "collapsed");
                } else {
                    sessionStorage.setItem("sidebarState", "expanded");
                }

我可以使用toggleClass执行此操作,还是必须使用hasClass()检查类,然后相应地添加/删除?

2 个答案:

答案 0 :(得分:3)

对您的问题的简短回答是否定的,toggleClass方法本身不包含该功能。它只用于切换类,并且没有任何回调可以做你想要的。

如文档中所示,它接受的参数都与要切换的类相关:http://api.jquery.com/toggleclass/

该方法的返回类型显示为“返回:jQuery”,表示该方法返回被执行的jQuery对象/集合。因此,您可以检查操作的结果,例如:

var result = $('div').toggleClass('foo');
console.log('Was the class added? ' + result.hasClass('foo'));

答案 1 :(得分:0)

你可能会用三元曲线来概括你的逻辑。

sessionStorage.setItem(
    "sidebarState",
    $el.toggleClass(sidebarCollapsed).hasClass(sidebarCollapsed) ? "collapsed" : "expanded"
);