2013-02-06 68 views
0

我需要一种方法来覆盖jQuery $.post方法,参数url

我需要为每个脚本追加一个字符串,而不必一一编辑它们。字符串值可能会因为系统创建而更改。

我知道有一种方法可以100%覆盖参数的值,但不只是追加。

谢谢你。

回答

0

考虑使用自定义功能:

var updateUrl = function(url){ 

    return url + someStuff 

} 

$.post(

    updateUrl(yourUrl), 
    data, 
    successCallback 

); 

所以你在updateUrl中覆盖重写逻辑一次,就是这样。

+1

他特别说他不想修改每个脚本 – Alnitak

+0

这个更新对任何体面的IDE顺便说一句简单的单一操作,但是你是对的。 – moonwave99

+0

你知道吗,我可以使用你的想法......这很简单,一旦完成,它就完成了并且工作! –

3

根据您想要做的修改,您可以使用.ajaxStart.ajaxSend方法中的一个来覆盖url参数。


通常情况下,您可以使用“Duck Punching pattern”来修改现有的JavaScript函数。你可以阅读这篇文章由保罗爱尔兰人知道它是如何工作http://paulirish.com/2010/duck-punching-with-jquery/

这里是他建议的最终模式与jQuery的

使用
(function($){ 

    // store original reference to the method 
    var _old = $.fn.method; 

    $.fn.method = function(arg1,arg2){ 

     if (... condition ...) { 
      return .... 
     } else {   // do the default 
      return _old.apply(this,arguments); 
     } 
    }; 
})(jQuery);