29 2014年05月

Discuz中common.js与Jquery冲突的解决

发布于:08时49分 | 来源:湛蓝天空  |   编辑:湛蓝  |   日志分类:DISCUZ  |   已聚集:人围观

Discuz频道模板兼容

在做discuz的频道模板时我们会发现Discuz中的common.js与Jquery是冲突的,这就造成DIY功能的界面错乱和无法使用,下面来说下Discuz中common.js与Jquery不兼容的解决方法。

一、Discuz中common.js与Jquery冲突原因

Jquery是通过一个全局变量$来引用的,而Discuz的common.js文件加载时也占用了$。因而冲突的根源就是全局变量$。说得明白点:当jQuery和common.js共存的时候,$究竟是谁?分析Jquery和common.js的源代码可以知道,这两个库在加载的时候都会占用$变量。因此,按照覆盖的原理,谁后加载,$变量就是谁。

二、解决Discuz中common.js与Jquery冲突的思路

除使用$外,Jquery还占用了另外一个变量作为别名,这个别名就是库本身的名称jQuery

在jQuery下 $("div");  和 jQuery("div"); 是同样的意思,所以我们可以将$送给common.js来使用,而jQuery使用jQuery这个代号。

除了common.js和jQuery.js文件,一般还会涉及到一个控制特效的js文件,了解了这些问题后就可以进行下面的操作了。

三、解决Discuz中common.js与Jquery冲突的方法

1、将$送给common.js

打开jQuery的源代码,在最后面添加

jQuery.noConflict();

2、替换特效JS文件中的$符号

打开特效JS文件,搜索

$(

替换为

jQuery(

除非注明,均为湛蓝天空原创,转载请注明本文网址:http://skyhome.cn/discuz/469.html

标签:discuz(10)
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)