コードに問題があります。特に、keyup イベントの後に 2 つのコールバックを順番に呼び出したいと考えています。
$('myDiv').keyup(function(){
function1
function2
});
次の関数の開始前に、最初の関数のロード ( function1
SQL 要求、行の追加など) を待機することは可能ですか?
たくさんのタンク
コードに問題があります。特に、keyup イベントの後に 2 つのコールバックを順番に呼び出したいと考えています。
$('myDiv').keyup(function(){
function1
function2
});
次の関数の開始前に、最初の関数のロード ( function1
SQL 要求、行の追加など) を待機することは可能ですか?
たくさんのタンク
2 番目の関数を最初の関数の ajax メソッド コールバックに入れます。次に例を示します。
function first(cb) {
// request something. Passed in function will execute
// once the request has completed.
$("#foo").load('/foo', cb);
}
function second() {
// do something
}
$('myDiv').keyup(function(){
first(second);
});
関数の実行内容に応じて、2 つの解決策があります。
function1
非同期呼び出し/コードが含まれていません:
ステートメントを前後に配置するだけです:
function1();
function2();
function1
非同期呼び出し/コードが含まれています(これがあなたのケースだと思います)次に、コールバックとして
渡して、応答を処理するときに呼び出す必要があります:function2
function1
function1
function1(function2);
function1
たとえば、次のようになります。
function function1(cb) {
$.ajax({ // asynchronous call
//...
success: function(data) {
// response handled here
cb(); // call the callback
}
});
}
Javascript は、完了function2
後にのみ評価されるシングル スレッドです。function1
ただし、これで AJAX を実行している場合 (AsynchronousJAX) はそうではなく、 の AJAX 呼び出しの応答ハンドラーにfunction1
への呼び出しを配置することで、これを回避する必要があります。function2
function1