所遇到的問題:
因為我的門戶模板有一個js效果,我需要在門戶摸版里面使用jquery函數(shù)。但當(dāng)我引入jquery后,我發(fā)現(xiàn)在門戶首頁使用diy插入模板時,自定義模板失效了。在網(wǎng)上百度后,發(fā)現(xiàn)是由于Discuz 和jQuery沖突問題,Discuz使用了$()作為對象選取函數(shù),剛好與jQuery默認的$()函數(shù)重合造成沖突。
網(wǎng)上的解決辦法:
解決方法1:
將jquery.js在common.js之前載入,不然jquery的$()函數(shù)會覆蓋common.js的$()函數(shù);然后用到j(luò)Query的$()函數(shù)的地方都用jQuery()代替。
解決方法2:
將jquery.js在common.js之后載入,在調(diào)用jQuery的函數(shù)前使用一下代碼:var jQuery = jQuery.noConflict();
個人感覺過于籠統(tǒng),所以我把我具體解決的辦法寫出來:
1.因為 common.js是在head.htm中引入的,我自己的jquery.js是在index,htm中引入的,所以確認可以使用解決方法2;
如果大家不是像我這樣引入的,需要具體判斷兩個js誰先載入,建議大家直接查看瀏覽器中頁面的源代碼,搜索 common.js和head.htm誰在前,誰在后
2.“在調(diào)用jQuery的函數(shù)前使用一下代碼:var jQuery= jQuery.noConflict(); 這句話的具體操作是,在自己寫的js文件里面最開頭加入var jQuery = jQuery.noConflict();
例如我引入jquery.js后,在引入自己的home.js
<script type="text/JavaScript"src="jquery.js"></script> <script type="text/javascript"src="home.js"></script>
需要在自己的home.js 文件中的最開頭,加入var jQuery = jQuery.noConflict();
3. 將home.js 文件中所以的$改為jQuery
備注:var jQuery = jQuery.noConflict() 中的紅色 jQuery可以自己定義,可以定義為var jq = jQuery.noConflict() 那么$替換為相應(yīng)的jq即可。