【发布时间】:2018-02-21 21:30:47
【问题描述】:
我有一个按钮,当单击它时,我希望它延迟切换另一个元素的类。所以逻辑是:
- 点击按钮
- 延迟 500 毫秒
- 添加类
- 再次点击相同的按钮
- 延迟 500 毫秒
- 删除类
这是我目前得到的:
jQuery(".menu-button").click(function(){
jQuery(".nav-bar-logo").delay(500).queue(function() {
jQuery(this).toggleClass("nav-bar-logo-active");
});
});
我知道在处理延迟和addClass 和removeClass 时需要排队,但它似乎不适用于toggleClass
我得到的代码部分有效:类在初始点击延迟后切换,但再次点击时它什么也不做。
有人想解决这个问题吗?
【问题讨论】:
-
.delay()用于动画效果。你想要.setTimeout() -
我认为
this不是你想的那样。 -
.delay 在这里应该没问题,结合 .queue。它具有在后续点击时与队列结合的额外好处。
标签: jquery