黃聰:Discuz自制模板帶jquery時與discuz本身沖突解決辦法


由於JQuery的效果很好,在制作模板時難免會用到各種jquery效果。可是做過模板的人就會發現加上自己的juery代碼后,discuz自帶的一些下拉功能就不可以使用了,其實原因就是discuz和JQuery的$發生沖突,導致有些功能失效。在網上找了一些資料整理了一下,希望能夠幫到大家,同時也希望discuz能盡快解決這個問題。

方法一:

  1. 在頁面的最頭部,也就是<head>標簽下的第一行開始引入我們用到的JQuery文件,這是為了能確保該JS可以在DZ默認JS之前加載。
  2. 在引用到該JS文件的地方把$改成 jQuery(注意大小寫)。

如上方式,一般都能解決大部分的JS不兼容情況。如果還是米喲解決的話嘗試一下方法:

將用到的JS里面的所有$全部替換成jQuery。

 

方法二:

DZ使用了$()作為對象選取函數,剛好與jQuery默認的$()函數重合造成沖突,同樣也是為了保持原有的DZ程序不被更改,所以我們要在JQ上修改了。不需要修改jquery.js這個文件。只要在引用的時候修改一下即可。

<script src="style/js/jquery.js" type="text/javascript"></script>

 

這是引用一個jquery核心文件,然后在其下面加上:

<script type="text/javascript">var CMSZS_JQ = jQuery.noConflict();</script>

 

紅色字體CMSZS_JQ自定義的,主要就是要注意大小寫。

然后把我們使用的js文件里面的所有$都換成我們自定義的這個值CMSZS_JQ,大小寫要相同。

 

建議使用第二種方法,如果要用到多個版本的JQ文件的話,就是在每個下面加上這句就好了。如:

<script src="style/js/jquery.1.4.2.js" type="text/javascript"></script>

<script type="text/javascript">var CMSZS_JQ = jQuery.noConflict();</script>

<script src="style/js/jquery.1.7.2.js" type="text/javascript"></script>

<script type="text/javascript">var CMS_JQ = jQuery.noConflict();</script>

 

 

注意:只要兩個自定義的值不相同,各自使用的js語句里面把$改成相應的值就OK了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM