我正在尝试在单击div块之前执行加载。 实际上,代码是这样的:
$("#bookmark").click(function() {
$("#page-loader").fadeIn("slow"); //should execute first
//my second code witch is hiding and showing some elements and takes about 5 sec to do
$(elements).hide() or show();
});
但是,当用户单击时,它首先执行第二个,然后首先执行:/
我已经尝试过delay(),setTimeout ...,但是没有一个起作用:(
编辑:很好,谢谢大家。您知道我是一个真正的初学者,对那些文档了解得不多:))
答案 0 :(得分:4)
因为fadeIn
是异步操作。在其回调中执行后续操作:
$("#page-loader").fadeIn("slow", function () {
$(elements).hide()// or show();
});
答案 1 :(得分:1)
摘自文档:http://api.jquery.com/fadein/
fadeIn函数的第二个参数是回调.fadeIn( [duration ] [, complete ] )
,您可以在其中放置要在动画后执行的代码。
$("#page-loader").fadeIn("slow", function() {
$(elements).hide(); // or show();
});
答案 2 :(得分:0)
寻找http://api.jquery.com/fadein/
.fadeIn( [duration ] [, complete ] )
$("#bookmark").click(function() {
$("#page-loader").fadeIn("slow", function complete() {
$(elements).hide();
//$(elements).show();
});
});