返回列表

[Discuz!] discuz下拉菜单与jquery不兼容的问题

jQuery是一个强大优秀的Javascript框架,但是当在DiscuzX上引入其所编写的特效时会有不兼容的问题,其常见的表现为引入jQuery后DIY功能和下拉菜单无法使用。
其原因是由于jQuery是通过一个全局变量$来引用对象,而DiscuzX的common.js文件加载时也使用了$来引用,这就造成了可能jQuery功能有问题或者是下拉菜单无法使用的问题,其具体表现是后加载的功能正常,先加载的功能失效。

解决思路
对于jQuery除了$还有另外一个全局调用对象的方法,这个就是使用库本身的名称jQuery。
在jQuery下$("div");和jQuery("div");是同样的意思,所以我们可以将$送给common.js来使用,而jQuery使用自己所有的jQuery,这样就可以根本解决全局使用冲突的问题了。
除了common.js和jQuery.js文件,一般的还会涉及到一个控制特效的js文件,特效js文件用到的$方法也要修改。

具体方法
1、$让给common.js使用,而jQuery使用jQuery
打开jQuery的源代码,在文件的最后添加
  1. jQuery.noConflict();
复制代码

2、替换js特效文件中的$符号
打开js特效文件,搜索
  1. $(
复制代码
替换为
  1. jQuery(
复制代码

保存好所有文件,更新一下缓存,不兼容的问题就一下烟消云散了。

返回列表