【问题标题】:jQuery - Wait till end of SlideUp()jQuery - 等到 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 "jamesbrooks":
                $("#content").css("text-align", "left");
                $("#content").load("inc/pages/jamesbrooks.html");
                break
            default:
                $("#content").css("text-align","center");
                $("#content").html("<h1>something went wrong, try again!</h1>");
        }
        return false;
    });
});

【问题讨论】:

    标签: jquery function wait slideup


    【解决方案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)));
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-03
          • 1970-01-01
          • 2018-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多