我经常使用ajax请求:
$.ajax({
done : function() {
alert( "success" );
},
fail : fonction() {
alert( "error" );
}
})
对于我的一个项目,我想为每个ajax请求创建一些默认操作,我想知道如何使用JavaScript继承来实现它。
我希望它看起来像:
// Definition of the custom and global object in order to override some basic ajax options.
MyCustomAjaxObject = new $.ajax();
MyCustomAjaxObject.error( function () { /* some code for a default */});
// Further in the code, at the moment to trigger one of the ajax request
foo = new MyCustomAjaxObject({
url : myDestination,
data : someData
});
你知道是否可以在JavaScript中使用那种继承?
答案 0 :(得分:2)
$.ajax()
因为它实际上并不是用作构造函数,所以继承可能无法轻松实现你想要的东西。
您可以为其创建一个包装器,以根据需要修改options
或生成$.Deferred
:
// A) default handler
function customAjax(options) {
if (!options.error) options.error = function () {
// ...
};
return $.ajax(options);
}
// B) always-in-queue handler
function customAjax(options) {
return $.ajax(options).error(function () {
// ...
});
}
而且,如果您只需要捕获ajax事件,jQuery确实包含global event bindings:
$(document).ajaxError(function () {
// ...
});