【问题标题】:Pass the same options to a jQuery function over and over一遍又一遍地将相同的选项传递给 jQuery 函数
【发布时间】:2012-04-06 10:53:47
【问题描述】:

我使用这个 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 回调。

这样做的正确方法是什么?

【问题讨论】:

    标签: javascript jquery oop


    【解决方案1】:

    定义一组标准选项:

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

    每次调用 ajax 时,使用标准选项扩展本地选项对象:

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

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

    【讨论】:

      【解决方案2】:

      您可以使用ajaxSetup 函数。

      jQuery.ajaxSetup( 选项)

      说明:为未来的 Ajax 请求设置默认值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-06
        • 1970-01-01
        • 2016-12-20
        • 2017-02-15
        • 2019-08-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多