如何在jQuery中先执行代码?

时间:2019-01-29 12:35:16

标签: javascript jquery

我正在尝试在单击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 ...,但是没有一个起作用:(

编辑:很好,谢谢大家。您知道我是一个真正的初学者,对那些文档了解得不多:))

3 个答案:

答案 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();
    });
});