我尝试过创建自己的 jquery 函数,这是通过
$.fn.extend({
myFunc: function () {
}
});
但是,在搜索网络并寻求答案后,我想问:
如何扩展 $.ajax()
可以通过运行来使用$.ajax
的新实现
$.ajax({
}).done(function (e) {
}).fail(function (e) {
});
我想做的是添加一个.progress()
,这样我就不必总是编写
$.ajax({
url: path,
xhrFields: {
onprogress: function (e) {
if (e.lengthComputable) {
console.log(e.loaded /e.total * 100 + '%');
}
}
}
});
每次我想监控进度。例如
$.ajax({
url: '/somewhereorother',
type: 'post',
dataType: 'json'
}).progress(function (e) {
updateProgressBar(e.percentage + '%');
}).done(function (e) {
}).fail(function (e) {
});
最佳答案
$.ajax
是附加到 $
对象的函数。
因此,要扩展它,您必须将对它的引用存储在某处,并在需要时调用它,例如:
var ajax = $.ajax;
$.ajax = function()
{
if (!arguments[0].success)
arguments[0].success = function()
{
window.alert('done!');
}
ajax.apply(ajax, arguments);
}
这是一个概念(我不确定 apply 中的 this
范围 - 必须实际运行它);)此外,我想说这是一种丑陋的做事方式。
如果您希望您的 $.ajax
函数与官方函数不同,我仍然会将其分开。通过 $.my_ajax
或通过单独的命名空间(看看 http://api.jquery.com/jquery.sub/ )
关于javascript - 如何扩展jQuery的AJAX功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695006/