- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
Discuz和jQuery變量名沖突的3種解決方法
這篇文章主要介紹了Discuz和jQuery變量名沖突的3種解決方法,在開發(fā)模板或?插件時經(jīng)常遇到這個問題,本文列出的3種方法都可以解決這個問題,需要的朋友可以參考下
緣起于之前自己初次接觸開發(fā),做了一款插件,本地測試安裝使用的時候發(fā)現(xiàn)所有的下拉菜單都不能夠使用,鼠標(biāo)點擊沒有任何反應(yīng),DIY也不能夠使用,后來經(jīng)1314學(xué)習(xí)網(wǎng)解答說明是DZ和JQ的$沖突!大家平時在寫模版或者插件的時候多多少少都會使用JQ,不知道什么時候就會遇到?jīng)_突性問題,最近在網(wǎng)上找了很多相關(guān)教程,現(xiàn)在與大家進(jìn)行分享!
第一種答案:
1、使用到的JS文件無需修改
2、在頁面的最頭部,也就是標(biāo)簽下的第一行開始引入,這是為了能確保該JS加載在DZ默認(rèn)JS之前。 3、在引用到該JS文件的地方建$改成 jQuery(注意大小寫)。 如上方式,一般都能解決大部分的JS不兼容情況。如果還是米喲解決的話嘗試一下方法: 將用到的JS里面的所有$君替換成jQuery。
第二種答案:
DZ使用了S()作為對象選取函數(shù),剛好與jQuery默認(rèn)的$()函數(shù)重合造成沖突,同樣也是為了保持原有的DZ程序不被更改,所以我們要在JQ上修改了。jquery.js 不需要修改這個文件。只要在引用的時候修改一下即可。例如以下代碼 是jq 的代碼。如?不做修改直接用入DZ會報錯。
代碼下:
<script type="text/javascript">// <![CDATA[</p> <p>$j(function(){ //使用jQuery
$("p").click(function(){
alert( $(this).text() );
});
}); </p> <p>$("pp").style.display = 'none'; //使用prototype
// ]]></script>
我們可以引用jQuery給JQ賦予一個變量
代碼如下:
var jq = jQuery.noConflict();</p> <p><script type="text/javascript">// <![CDATA[</p> <p>var jq = jQuery.noConflict();
jq(function(){ //使用jQuery
jq("p").click(function(){
alert( jq(this).text() );
});
});
jq("pp").style.display = 'none'; //使用prototype
// ]]></script>
替換之后應(yīng)該是解決js沖突問題。
提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!
這條文檔是否有幫助解決問題?
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP