由於JQuery的效果很好,在制作模板時難免會用到各種jquery效果。可是做過模板的人就會發現加上自己的juery代碼后,discuz自帶的一些下拉功能就不可以使用了,其實原因就是discuz和JQuery的$發生沖突,導致有些功能失效。在網上找了一些資料整理了一下,希望能夠幫到大家,同時也希望discuz能盡快解決這個問題。
方法一:
- 在頁面的最頭部,也就是<head>標簽下的第一行開始引入我們用到的JQuery文件,這是為了能確保該JS可以在DZ默認JS之前加載。
- 在引用到該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了。