開啟輔助瀏覽

Besv 技術討論區

 找回密碼
 立即註冊
搜尋
查看: 1313|回覆: 6

如何解決 jQuery 與 Discuz 變數衝突

[複製連結]
發表於 2016-7-28 16:41:30 | 顯示全部樓層 |閱讀模式
Discuz 程式本身使用了"$()" 作為對象選取函數,剛好與jQuery默認的$()函數重合造成衝突 , 要解決這個問題其實很簡單 , 我們只需要再 jQuery 的各種功能套件程序前 , 先加入以下防衝突函數 , 即可達成在Discuz中使用各種 jQuery 效果:
  • var jq = jQuery.noConflict();


[color=rgb(51, 102, 153) !important]複製代碼

此防衝突函數的意義在於把jQuery的 $ 函數改成以 jq替代 , 這樣就可以避免掉與許多程式使用相同變數起衝突的問題 ~
因此加入以上程式碼後 , 透過 Dreamweaver 或是其它編輯軟體 , 查找你要使用的jQuery功能套件中 , 所有的 "$" 函數符號 , 並將它取代成 "jq" 即可。

查看以下真實範例 , 應該會更清楚一些:

防衝突前
  • <script type="text/javascript">
  • $(document).ready(function() {
  •   $('#hiddenbox').hide();
  •   $('a#jqtextcall').click(function() {
  •   $('#hiddenbox').slideToggle(400);
  •     return false;
  •   });
  • });
  • </script>


[color=rgb(51, 102, 153) !important]複製代碼

防衝突後
  • jq(document).ready(function() {
  •   jq('#hiddenbox').hide();
  •   jq('a#jqtextcall').click(function() {
  •   jq('#hiddenbox').slideToggle(400);
  •     return false;
  •   });
  • });


[color=rgb(51, 102, 153) !important]複製代碼

透過以上案例相信大家應該更清楚實際上的使用方式

點評

喔,好  發表於 2016-8-2 15:39
我是指"[color=rgb(51, 102, 153) !important]複製代碼"這至少去掉吧?  發表於 2016-8-2 14:05
你看,這是我在自己的空間寫的日誌,不是複製的... https://m.imgur.com/makobpI  發表於 2016-7-29 08:39
複製後 至少"[color=rgb(51, 102, 153) !important]複製代碼" 改一下吧...  發表於 2016-7-28 22:59

評分

1

查看全部評分

發表於 2016-7-28 22:16:35 | 顯示全部樓層
未看先猜 改開頭(前綴)?

點評

完全正確  發表於 2016-7-28 22:46
您需要登入後才可以回文 登入 | 立即註冊

本版積分規則

黑名單|客戶連結|客服信箱|客服系統

Copyright © 2013 - 2019 Besv Technology Forum

專業網站主機服務

Powered by Discuz!

Wildcard SSL Certificates

快速回覆 返回頂部 返回列表