2013-02-06 67 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);