电脑Run

查看: 160|回复: 0

Discuz与jQuery的$符号冲突,该怎么解决?亲测解决方法

[复制链接]

29

主题

30

帖子

131

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
131
发表于 2020-8-30 02:14:50 | 显示全部楼层 |阅读模式
在做Discuz布局的时候,需要用到jQuery中的功能。其中jQuery库定义的函数$()正好与discuz的comme.js中函数发生了冲突了,导致discuz论坛所有js效果失效。
这里找到了一个方法,共享出来备用,也方便大家。
其实思路很简单,就是discuz占用了$()那么jQuery中我就不用这个函数了
其实jQuery已经给出了解决方案,就是用 var 自定义函数名 = jQuery.noConflict();来置换jQuery中的$,然后在jQuery中所有应用到$的地方都替换成这个自定义函数名。
下面说一下步骤:
打开discuz中共用的header.hrm文件,在下面加载jQuery。
1、这里两种情况,一种是直接在文档中写js代码
    1. <script language="javascript" type="text/javascript">
    2. var jq = jQuery.noConflict();
    3.     jq(document).ready(function(){  
    4.         jQuery("select").select();  
    5.     })  
    6. <script>
    复制代码

这里我自定义的函数名就是jQuery.

2、还有一种情况是外链一个js文件,情况是一样的,只要在这个js文件开头加上var jQuery= jQuery.noConflict();,然后下面用到$的地方都替换为自定义函数名jQuery就可以了。
其实很简单,就一句话概括:一个思路,两个步骤。
注:这个方法可以应用到所有与jQuery因$()重复引起的冲突问题中,这里只是一个小小的应用!

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|电脑Run ( 豫ICP备19038182号-2 )

Copyright © 2019-2029, Diannao Run.

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