我有一个简单的滑动内容元素,如果点击链接,应该显示它的内容。
这是我的标记:
<div class="boxwrap hidden-sm hidden-xs">
<div class="boxright pull-left">
<a href="#" id="toggleContactOpen" class="pull-left"><img src="img/envelope.png" alt="envelope-icon"></a>
<div class="detail">
<p>
01234-567 890 123 4
<a href="mailto:example@example.com" title="Write an E-Mail">example@example.com</a>
</p>
</div>
</div>
</div>
这是我的jQuery:
$("#toggleContactOpen").click(function(){
if($(".boxright").hasClass("showbox")) {
$(".boxright").toggleClass("showbox");
$(".detail").toggleClass("open-detail");
}
else {
$(".boxright").toggleClass("showbox").delay(500).queue(function(){
$(".detail").toggleClass("open-detail");
});
}
});
在第一次点击中,所有操作都是正确的: boxright获得了类"showbox“,而细节在500 and之后得到了类的”打开详细信息“。闭包仍然有效,两个类都被切换掉了元素。但是在第三次单击时,只有boxright才能得到类"showbox",但是detail没有得到“打开的详细信息”。我不知道为什么。如果你能帮我,我会很感激的。
发布于 2016-01-25 11:51:28
您需要使用.dequeue()
来结束自定义队列函数。
$(".boxright").toggleClass("showbox").delay(500).queue(function(){
$(".detail").toggleClass("open-detail");
$(this).dequeue();
});
https://stackoverflow.com/questions/34991768
复制相似问题