24

How can I wait till the end of the jQuery function slideUp() before continuing the script?

<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;
    });
});

James Brooks
  • 1,281
  • 5
  • 17
  • 28

3 Answers3

50

Use the callback mechanism and have your code run in the callback.

$('#something').slideUp('fast', function() {
   ... stuff to do after the slide is complete...
});
tvanfosson
  • 524,688
  • 99
  • 697
  • 795
4

slideUp() takes two arguments. If you pass a function as the second argument, it'll be called when the animation is complete.

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

Turnor
  • 1,836
  • 12
  • 14
0

In an async function:

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

Ensure you are in an async context, otherwise “await” will raise an error.

Marco Balestra
  • 167
  • 2
  • 6