2013-11-04 176 views
-1

我使用一個jQuery插件,它看起來像:解決「無衝突」模式

/* Copyright (c) 2006-2007 Mathias Bank (http://www.mathias-bank.de) 
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. 
* 
* Version 2.1 
* 
* Thanks to 
* Hinnerk Ruemenapf - http://hinnerk.ruemenapf.de/ for bug reporting and fixing. 
* Tom Leonard for some improvements 
* 
*/ 
jQuery.fn.extend({ 
/** 
* Returns get parameters. 
* 
* If the desired param does not exist, null will be returned 
* 
* To get the document params: 
* @example value = $(document).getUrlParam("paramName"); 
* 
* To get the params of a html-attribut (uses src attribute) 
* @example value = $('#imgLink').getUrlParam("paramName"); 
*/ 
getUrlParam: function(strParamName){ 
     strParamName = escape(unescape(strParamName)); 

     var returnVal = new Array(); 
     var qString = null; 

     if ($(this).attr("nodeName")=="#document") { 
     //document-handler 

     if (window.location.search.search(strParamName) > -1){ 

      qString = window.location.search.substr(1,window.location.search.length).split("&"); 
     } 

     } else if ($(this).attr("src")!="undefined") { 

     var strHref = $(this).attr("src") 
     if (strHref.indexOf("?") > -1){ 
      var strQueryString = strHref.substr(strHref.indexOf("?")+1); 
      qString = strQueryString.split("&"); 
     } 
     } else if ($(this).attr("href")!="undefined") { 

     var strHref = $(this).attr("href") 
     if (strHref.indexOf("?") > -1){ 
      var strQueryString = strHref.substr(strHref.indexOf("?")+1); 
      qString = strQueryString.split("&"); 
     } 
     } else { 
     return null; 
     } 


     if (qString==null) return null; 


     for (var i=0;i<qString.length; i++){ 
      if (escape(unescape(qString[i].split("=")[0])) == strParamName){ 
       returnVal.push(qString[i].split("=")[1]); 
      } 

     } 


     if (returnVal.length==0) return null; 
     else if (returnVal.length==1) return returnVal[0]; 
     else return returnVal; 
    } 
}); 

我遇到的問題是,我得到這個錯誤:

Uncaught TypeError: Property '$' of object [object Object] is not a function 

我知道這是因爲WordPress的「無衝突」模式,我想知道如何解決這個問題?此代碼來自插件,我可以對其進行編輯,但我不想更換該插件的每個$

我該如何解決這個問題?

+1

我們需要了解更多關於插件的信息。到目前爲止,您給我們的東西展示了一個能夠使用'jQuery.noConflict'正確編寫的插件的開始。 –

+0

我添加了整個插件 – BlackHatSamurai

+0

每次出現'$'都應該改爲'jQuery',或者你可以將整個插件包裝在IFFE中。 –

回答

1

嘗試在一個匿名函數中包裝插件,就像這樣。

(function($) { 
    //Plugin code here 
})(jQuery) 
+0

謝謝!這工作完美! – BlackHatSamurai