當前位置:首頁 > 網頁設計 > javascript > 正文

Discuz與JQuery不兼容解決方案

做Discuz模板的都知道Discuz與jQuery不兼容,會造成DIY功能和下拉菜單無法使用,以前經常遇到這個問題都是跳過去,今天跳不過去了只好硬著頭皮找方法,網上相關方法很多,但對于不熟悉Javascript的人來說看了都是一頭霧水,下面我來講一講如何解決這個問題。
一、沖突原因(看不懂的跳過)
jQuery是通過一個全局變量$來引用的,而Discuz的common.js文件加載時也占用了$。因而沖突的根源就是全局變量$。說得明白點:當jQuery和common.js共存的時候,$究竟是誰?
分析jQuery和common.js的源代碼可以知道,這兩個庫在加載的時候都會占用$變量。因此,按照覆蓋的原理,誰后加載,$變量就是誰。

二、解決思路
除了$,jQuery還占用了另外一個變量作為別名,這個別名就是庫本身的名稱jQuery
在jQuery下
  1. $("div");

復制代碼
  1. jQuery("div");

復制代碼
是同樣的意思,所以我們可以將$送給common.js來使用,而jQuery使用jQuery這個代號。
除了common.js和jQuery.js文件,一般還會涉及到一個控制特效的js文件,了解了這些問題后就可以進行下面的操作了。

三、解決沖突的方法
1、將$送給common.js
打開jQuery的源代碼,在最后面添加
  1. jQuery.noConflict();

復制代碼
2、替換特效JS文件中的$符號
打開特效JS文件,搜索
  1. $(

復制代碼
替換為
  1. jQuery(

復制代碼
保存好所有文件,更新一下緩存,問題就都解決了,看看是不是不沖突了。

上一篇:jQuery radio change事件 下一篇:最后一頁
四川快乐12走势图基本