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() 结束的主要内容,如果未能解决你的问题,请参考以下文章