Discuz X2 与 jQuery 兼容解决方案

21 篇文章 0 订阅
原因 :Discuz使用了$()作为对象选取函数,刚好与jQuery默认的$()函数重合造成冲突,代码依旧位于include/common.js中。

1.下载新版完整版的jQuery脚本文件,放到Discuz根目录下的 static\js\ 文件夹中(如果是 mini 版的js文件,因为已经压缩的原因,则追加后可能出错, 建议 在完整版后面追加,然后再利用js压缩工具压缩);
2.
解决方法1:
修改/template/default/common/header_common.htm,在第16行代码<!--{csstemplate}-->
之后增加以下代码:
<script src="{$_G[setting][jspath]}jquery-1.4.min.js?{VERHASH}"></script>
之后用到jQuery的$的地方用jQuery代替。

即,将jquery.js在common.js之前载入,不然jquery的$()函数会覆盖common.js的$()函数;然后用到jQuery的$()函数的地方都用jQuery()代替。

解决方法2:
修改/template/default/common/header.htm,在第20行代码</head>之前增加以下代码:
<script src="{$_G[setting][jspath]}jquery-1.4.min.js?{VERHASH}"></script>
<script>jQuery.noConflict();</script>
之后用到jQuery的$的地方用jQuery代替。

即,将jquery.js在common.js之后载入,在jquery-1.4.4.js的最后一行加入jQuery.noConflict();//这是jQuery多库共存机制的一种体现。

或者加入<script>jQuery.noConflict();</script>即可。原理其实都是一样


的。

3. 注:修改完成后请记得更新一下系统模板缓存才能看到效果,手动删除/data/template/下的所有文件,或在系统管理的工具》更新缓存中更新模板缓存。


4.使用:
在所有jQuery调用使用 $ 字样的地方,使用 jQuery 字样, 例如
$('#_id_').hide();
则变成:
jQuery('#_id_').hide();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值