2016-04-01 92 views
0

我有一個「保存」按鈕,當用戶單擊我的頁面上的下一個/上一個按鈕時,需要觸發該按鈕。當用戶點擊下一個窗口移動到另一個窗口時,我會觸發一個「保存」按鈕,保存用戶生氣的變化以及其他一些功能。問題是當我點擊下一個或上一個按鈕時,保存按鈕被觸發,但需要時間保存更改並且代碼繼續執行。有沒有一種方法可以判斷保存是否已完成或以某種方式延遲我的代碼?我知道我可以延遲一段時間,但對每個用戶來說可能都不一樣,效率也不高。這裏是一個例子:如何等待任務完成才能繼續下一部分代碼

function prev_next(){ 
    $('#save').trigger('click');  //This line could take 2-5 seconds to finish 
    //Other code here that opens next window 
} 

任何意見將不勝感激。

+0

檢查此:http://stackoverflow.com/questions/5000415/call-先前功能完成後的功能完成 –

+0

不是僞造點擊,而是調用底層邏輯c通過點擊調用。這大概是異步的,所以你可以通過掛上一個承諾來做你的「其他代碼」,或者在回調中做。 –

回答

0

您將不得不編輯通過單擊保存按鈕觸發的函數,以允許回調函數。 (我假設有一個ajax請求被髮送到某個服務器來保存)。

實施例:

保存功能:

function saveEdits(callback){ 
    $.ajax({ 
     url: 'urltosavepage.php', 
     method: 'post', 
     data: { 
      somevar: 'somevalue' 
     }, 
     success: function(response) 
     { 
      callback(); 
     } 
    }); 
} 

prev_next功能:

function prev_next() 
{ 
    saveEdits(function(){ 
     // Code that is here will not get executed until after the ajax request is completed, and the success function gets called. 
     //Other code here that opens next window 
    }); 
}