javascript - 一遍又一遍地将相同的选项传递给 jQuery 函数

标签 javascript jquery oop

我使用这个 jQuery Ajax-Request,它是根据我的需要配置的:

jQuery.ajax({
    url: "apiBridge.php?url=" +  encodeURIComponent(url),
    headers: {
        "Some Weird Header": "123"
    },
    success: function(data){

    },
    complete: function(){
        doAlotOfStuff();
        andMore();
    }
});

真正的代码相当长,我认为每次我需要以我的风格发出 Ajax 请求时复制/粘贴整个代码是愚蠢的。

我想做的是定义这个函数一次,这样我就可以重复使用它。对于函数的每个实例,我需要更改的只是 urlsuccess 回调。

执行此操作的正确方法是什么?

最佳答案

定义一组标准选项:

var ajaxOpts = {
    headers:{},
    url:"someUrl",
    complete:function(){//whatever;},
    otheroptions:"asneeded"
};

当您进行每个 ajax 调用时,请使用标准选项扩展本地选项对象:

$.ajax($.extend({url:"custom", success:doAThing}, ajaxOpts));

...或者如@gdoron所说,使用ajaxSetup。我更喜欢 $.extend,因为这样我就不会破坏我可能无法控制的页面上的其他 $.ajax 调用。

关于javascript - 一遍又一遍地将相同的选项传递给 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9812788/

相关文章:

javascript - 检测哪个类被点击了 jQuery

javascript - 为什么注释掉这段代码的alert()行会导致它失败?

javascript - 如何在悬停时向元素添加类,但当您离开鼠标时类保留

java - 使用继承时如何摆脱 instanceof 检查?

PHP - 从变量到常量的值

JavaScript - 循环数组比我应该的少

javascript - 将 PDF 二进制数据编码为 base64 不适用于 NodeJS

javascript - google.visualization.PieChart 不是构造函数

jquery - .load() 我怎样才能引入CSS?

c++ - Yield 从 C# 到 C++,处理容器