jQuery - 等到 SlideUp() 结束

Posted

技术标签:

【中文标题】jQuery - 等到 SlideUp() 结束【英文标题】:jQuery - Wait till end of SlideUp() 【发布时间】:2010-11-08 05:40:07 【问题描述】:

如何才能等到 jQuery 函数 slideUp() 结束后再继续执行脚本?

<script type="text/javascript">
$(document).ready(function() 
    $("div[class=item]").click(function() 
        var id = $(this).attr("id");
        $("#content").slideUp();
        switch(id) 
            // Applications
            case "rampro":
                $("#content").css("text-align", "left");
                $("#content").load("inc/pages/rampro.html");
                $("#content").slideDown();
                break
            case "diskman":
                $("#content").css("text-align", "left");
                $("#content").load("inc/pages/diskman.html");
                break
            case "iconmap":
                $("#content").css("text-align", "left");
                $("#content").load("inc/pages/iconmap.html");
                break
            // Websites
            case "benoks":
                $("#content").css("text-align", "left");
                $("#content").load("inc/pages/benoks.html");
                break
            case "linkbase":
                $("#content").css("text-align", "left");
                $("#content").load("inc/pages/linkbase.html");
                break
            case "james***s":
                $("#content").css("text-align", "left");
                $("#content").load("inc/pages/james***s.html");
                break
            default:
                $("#content").css("text-align","center");
                $("#content").html("<h1>something went wrong, try again!</h1>");
        
        return false;
    );
);

【问题讨论】:

【参考方案1】:

使用callback mechanism 并让您的代码在回调中运行。

$('#something').slideUp('fast', function() 
   ... stuff to do after the slide is complete...
);

【讨论】:

【参考方案2】:

slideUp() 有两个参数。如果你传递一个函数作为第二个参数,它会在动画完成时被调用。

http://docs.jquery.com/Effects/slideUp

【讨论】:

【参考方案3】:

在异步函数中:

await (new Promise(x=>$('#something').slideUp('fast',x)));

确保您处于异步上下文中,否则“等待”会引发错误。

【讨论】:

以上是关于jQuery - 等到 SlideUp() 结束的主要内容,如果未能解决你的问题,请参考以下文章

Jquery .click 等到过渡结束

是否可以打印被 jQuery 的“slideUp”功能隐藏的 DIV

如何等到jquery中的隐藏效果结束

jquery animate的一个疑惑

等到声音结束才能使用网页

jQuery补充