【问题标题】:Jquery Formatting - run function after another one has finishedJquery Formatting - 在另一个完成后运行函数
【发布时间】:2012-06-29 00:31:41
【问题描述】:

我有两个 jQuery 函数。我想先运行下面的第一个,然后在该函数完成后运行另一个。通常我会在第一段代码中添加一个函数,但不确定如何使用这个块或者它是否是正确的方法。

简而言之,我希望这段代码能够运行...

$('#setupPanel').modal({
        backdrop: "static",
        keyboard: false
});

此函数执行完毕后...

$('html, body').animate({
        scrollTop: $("#header_wrap").offset().top
}, 600);

编辑: 这是整个函数...

$(setUp).click(function () {
    $('html, body').animate({
        scrollTop: $("#header_wrap").offset().top
    }, 600);
    $('#setupPanel').modal({
        backdrop: "static",
        keyboard: false
    });
});

【问题讨论】:

    标签: jquery


    【解决方案1】:

    你可以试试promise()方法:

    $(setUp).click(function () {
        $('#setupPanel').modal({
            backdrop: "static",
            keyboard: false
        }).promise().done(function() {
            $('html, body').animate({
                scrollTop: $("#header_wrap").offset().top
            }, 600);    
          });
    });
    

    更新:

    也可以使用.animate()方法的回调函数:

    $(setUp).click(function () {
            $('html, body').animate({
                scrollTop: $("#header_wrap").offset().top
            }, 600, function() {
              $('#setupPanel').modal({
                  backdrop: "static",
                  keyboard: false
              })
          }});
    });
    

    【讨论】:

    • 你能详细说明它是如何工作的吗?我在哪里放置 .modal() 函数?把这个放在modal.()函数下面?
    • @MikeBarwick 是的,在调用 modal() 之后放这个
    • 不工作的人。我编辑了我的帖子以包含整个功能以供您查看。它们都在同时运行。
    • 否定。我需要单击按钮(这是 setUp 变量),滚动到页面顶部(如果还没有),然后在页面顶部执行模式弹出窗口。现在它们都在同时运行。哪种有效,但如果我在页面下方更远,则无效。
    • @MikeBarwick 在这种情况下,您可以尝试动画回调函数,该回调函数将在动画完成后执行。
    猜你喜欢
    • 1970-01-01
    • 2014-09-28
    • 2013-11-09
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多