首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery队列-在toggleClass发生后执行某些操作的函数

jQuery队列-在toggleClass发生后执行某些操作的函数
EN

Stack Overflow用户
提问于 2016-01-25 11:44:03
回答 1查看 85关注 0票数 1

我有一个简单的滑动内容元素,如果点击链接,应该显示它的内容。

这是我的标记:

代码语言:javascript
运行
复制
<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:

代码语言:javascript
运行
复制
$("#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没有得到“打开的详细信息”。我不知道为什么。如果你能帮我,我会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-25 11:51:28

您需要使用.dequeue()来结束自定义队列函数。

代码语言:javascript
运行
复制
$(".boxright").toggleClass("showbox").delay(500).queue(function(){ 
    $(".detail").toggleClass("open-detail");
    $(this).dequeue();
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34991768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档