亚州av综合色区无码一区,午夜一区二区三区亚洲影院电影网,天堂а√在线地址,性人久久网av,无码内射成人免费喷射

曉木蟲(chóng)
學(xué)術(shù)數(shù)據(jù)庫(kù)客戶端

Discuz與JQuery不兼容的解決方案

 找回密碼
 注冊(cè)新賬號(hào)

QQ登录

微信登录

Discuz與JQuery不兼容的解決方案

跳轉(zhuǎn)到指定樓層
用過(guò)Discuz的都知道Discuz與jQuery不兼容,會(huì)造成DIY功能和下拉菜單無(wú)法使用,以前經(jīng)常遇到這個(gè)問(wèn)題都是跳過(guò)去,今天跳不過(guò)去了只好硬著頭皮找方法,網(wǎng)上相關(guān)方法很多,但對(duì)于不熟悉Javascript的人來(lái)說(shuō)看了都是一頭霧水,下面來(lái)講一講如何解決這個(gè)問(wèn)題。

一、沖突原因
jQuery是通過(guò)一個(gè)全局變量$來(lái)引用的,而Discuz的common.js文件加載時(shí)也占用了$。因而沖突的根源就是全局變量$。說(shuō)得明白點(diǎn):當(dāng)jQuery和common.js共存的時(shí)候,$究竟是誰(shuí)?

分析jQuery和common.js的源代碼可以知道,這兩個(gè)庫(kù)在加載的時(shí)候都會(huì)占用$變量。因此,按照覆蓋的原理,誰(shuí)后加載,$變量就是誰(shuí)。

二、解決思路
除了$,jQuery還占用了另外一個(gè)變量作為別名,這個(gè)別名就是庫(kù)本身的名稱(chēng)jQuery
在jQuery下$和jQuery是同樣的意思,所以我們可以將$送給common.js來(lái)使用,而jQuery使用jQuery這個(gè)代號(hào)。
除了common.js和jQuery.js文件,一般還會(huì)涉及到一個(gè)控制特效的js文件,了解了這些問(wèn)題后就可以進(jìn)行下面的操作了。

三、解決沖突的方法
1、將$送給common.js
打開(kāi)jQuery的源代碼,在最后面添加
  1. jQuery.noConflict();
復(fù)制代碼
2、替換特效JS文件中的$符號(hào)
打開(kāi)特效JS文件,搜索$替換為jQuery
調(diào)用jQuery中的方法時(shí)用別名jQuery.不要用$.
保存好所有文件,更新一下緩存,問(wèn)題就都解決了,看看是不是不沖突了。

Discuz與JQuery不兼容的解決方案
非常棒,感謝分享!
贊同此方案

本版積分規(guī)則  | 请遵守晓木虫管理条例,不得违反国家法律法规

返回頂部