0

私のタイトルが誤解を招くものでないことを願っています。変更イベント内にいくつかの ajax があります。例えば:

$("#my-object").change(function(){
    $.get( ... );
});

change() を呼び出して ajax の終了を検出することは可能ですか?

$("#my-object").change().functionToCallAfterAjaxInChangeCompleted();

これまでのところ、私の唯一のアイデアは、.change(function()..)それ自体でいくつかの機能を記述することでしたが、それは私が望む方法ではありません。

4

3 に答える 3

1

promise インターフェイスを使用してこれを行うことができます。

// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.get(...);

jqxhr.done(function () {
    functionToCallAfterAjaxInChangeCompleted()
});
于 2013-11-08T14:43:14.020 に答える
1

.trigger()イベントを発生させる代わりに使用する場合は.change()、追加のパラメーターをイベント ハンドラーに渡すことができます。

$("#my-object").change(function(eventObj, additionalParam) {
    $.get(...).done(additionalParam.done);
}).trigger("change", { 
    done: function() {
        alert("ajax finished"); 
    }
});

于 2013-11-08T14:54:57.120 に答える
0

JQuery documentationで述べたように、成功のコールバックで関数を呼び出すことができます。

$("#my-object").change(function(){
  $.get( "someurl.com", function( data ) {
    ... // process your ajax data
    functionToCallAfterAjaxInChangeCompleted()
  });
});
于 2013-11-08T14:45:01.990 に答える