希望我的头衔没有误导性。我在改变事件中有一些ajax。例如:
$("#my-object").change(function(){
$.get( ... );
});
是否可以通过调用change()检测ajax结束:
$("#my-object").change().functionToCallAfterAjaxInChangeCompleted();
到目前为止,我唯一的想法是在.change(function()..)
本身写一些功能,但这不是我想要的方式。
答案 0 :(得分:1)
您可以使用promise接口执行此操作:
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.get(...);
jqxhr.done(function () {
functionToCallAfterAjaxInChangeCompleted()
});
答案 1 :(得分:1)
如果您使用.trigger()
代替.change()
来触发事件,则可以将其他参数传递给事件处理程序
$("#my-object").change(function(eventObj, additionalParam) {
$.get(...).done(additionalParam.done);
}).trigger("change", {
done: function() {
alert("ajax finished");
}
});
答案 2 :(得分:0)
如JQuery documentation所述,您可以在成功回调中调用您的函数:
$("#my-object").change(function(){
$.get( "someurl.com", function( data ) {
... // process your ajax data
functionToCallAfterAjaxInChangeCompleted()
});
});