由於 JQuery 的效果很好,在製作模板時難免會用到各種 jquery 效果。可是做過模板的人就會發現加上自己的 juery 代碼後,discuz 自帶的一些下拉功能就不可以使用了,其實原因就是 discuz 和 JQuery 的 $發生衝突,導致有些功能失效。在網上找了一些資料整理了一下,希望能夠幫到大家,同時也希望 discuz 能儘快解決這個問題。
方法一:
1 、使用到的 JS 文件無需修改 (也就是 juery 核心文件)
2 、在頁面的最頭部,也就是<head> 標籤下的第一行開始引入我們用到的 JS 文件,這是為了能確保該 JS 可以在 DZ 默認 JS 之前加載。
3 、在引用到該 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 MUXIUBA_JQ = jQuery.noConflict();</script>
紅色字體 MUXIUBA_JQ 自定義的,主要就是要注意大小寫。
然後把我們使用的 js 文件裏面的所有 $都換成我們自定義的這個值 MUXIUBA_JQ ,大小寫要相同。
建議使用第二種方法,如果要用到多個版本的 JQ 文件的話,就是在每個下面加上這句就好了。如:
<script src="style/js/jquery.1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">var MUXIUBA_JQ = jQuery.noConflict();</script>
<script src="style/js/jquery.1.7.2.js" type="text/javascript"></script>
<script type="text/javascript">var MUXIUBA_JQ_2 = jQuery.noConflict();</script>
注意:只要兩個自定義的值不相同,各自使用的 js 語句裏面把 $改成相應的值就 OK 了。