2012-06-29 96 views
1

我有兩個jQuery函數。下面的第一個,我想先運行,比那個函數完成後,運行另一個。通常情況下,我會在第一個代碼中添加一個函數,但不知道如何使用這個代碼塊或者如果這是正確的方法。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 
    }); 
}); 

回答

6

您可以試試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 
      }) 
     }}); 
}); 
+0

你能否解釋一下這是如何工作的?我在哪裏放入.modal()函數?把它放在模態。()函數中? –

+0

@MikeBarwick是的,在調用'modal()'之後放這個 – undefined

+0

不工作的人。我編輯了我的帖子,以包含整個功能供您查看。它們仍然同時運行。 –

相關問題