1

私はプラグインを書いていません。私は、特定の関数がajax呼び出しなどの実行を終了したときに自分自身に知らせるための簡単でクリーンな方法を探しています。

だから私はこれを持っています:

function doSomething() {
...
   getCauses("", query, function () {
       alert('test');  
   });
...
}

function getCauses(value, query) {
//do stuff...
}

もちろん、アラートは発生しません。getCauses内に$.ajax呼び出しがあり、getCausesの実行が終了し、関数が呼び出された場所からコード行を実行した後、アラートまたはアクションを実行したいと思います。

アイデア?ありがとう。

4

3 に答える 3

2

getCausesまず、パラメータを次の場所に追加する必要があります。

function getCauses(value, query, callback) {
}

次に、$.ajax呼び出し内で、AJAX完了コールバックのコールバックパラメーターを呼び出します。

$.ajax({
    // ...
    complete: function() {
        // Your completion code
        callback();
    }
});
于 2012-05-03T22:56:23.233 に答える
0

コールバック関数を渡していますが、実行していません。

function doSomething() {
    ...
    getCauses("", query, function () {
        alert('test');  
    });
    ...
}

function getCauses(value, query, callback) {
    //do stuff...

    //stuff is done
    callback();
}
于 2012-05-03T22:56:49.423 に答える
0

ちょっとしたJavaScriptのトリックを使用して、コールバックが定義されていない場合に、いくつかのデフォルト機能を実装できるようにする実装を次に示します。これは、99%の確率で一般的なコールバックが必要であり、それをいくつかの場所でカスタマイズしたい場合に最適です。

var my_callback = function() {
    alert('I am coming from the custom callback!');
}

var special_function(string_1, callback) {
    (callback || function() {
        // Default actions here
        alert('I am coming from the generic callback');
    })();
}

// This will alert "I am coming from the custom callback!"
special_function("Some text here", my_callback);

// This will alert "I am coming from the generic callback"
special_function("Some text here");

// This will do nothing
special_function("Some text here", function() {});

乾杯!

于 2012-05-03T23:08:08.320 に答える