Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] Discuz与JQuery不兼容解决方案

[复制链接]
千叶设计 发表于 2013-2-2 18:04:00 | 显示全部楼层 |阅读模式
本帖最后由 千叶设计 于 2013-2-2 18:09 编辑

做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(
复制代码
保存好所有文件,更新一下缓存,问题就都解决了,看看是不是不冲突了。

如果还有不明白的可以回帖提问

评分

2

查看全部评分

医药导航网 发表于 2013-2-2 18:19:27 | 显示全部楼层
不懂,只是过来看看
认识一下
回复

使用道具 举报

水分子 发表于 2013-2-2 18:24:23 | 显示全部楼层
分享就是美德

回复

使用道具 举报

lzh370 发表于 2013-2-21 16:29:48 | 显示全部楼层
很棒。确实解决了,感谢楼主。
回复

使用道具 举报

dreamsail 发表于 2013-3-14 07:46:33 | 显示全部楼层
楼主,这个怎么改啊。。。我的问题是DIY 无法保存左下角提示javascript
回复

使用道具 举报

 楼主| 千叶设计 发表于 2013-3-14 14:02:19 | 显示全部楼层
dreamsail 发表于 2013-3-14 07:46
楼主,这个怎么改啊。。。我的问题是DIY 无法保存左下角提示javascript

你的问题不是“Discuz与JQuery不兼容”,所以这个方法不适用于你的问题
回复

使用道具 举报

chanyying 发表于 2013-5-2 17:22:17 | 显示全部楼层
如果还有不明白的可以回帖提问

dz不兼容jquery
今天为了实现一种效果,用了jquery-1.2.6.min.js,但是dz并不兼容怎么处理?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 12:13 , Processed in 0.085426 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表