2016-04-01 15 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- a-function-after-previous-function-is-complete –

+0

クリックを偽装するのではなく、基になるlogi 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 
    }); 
}