2013-11-04 128 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