南通SEO,南通网络营销顾问任伟SEO博客

首页> 网站建设> Discuz > Discuz和jQuery变量名冲突的3种解决方法
796Views

Discuz和jQuery变量名冲突的3种解决方法

作者: 发布于 0 条评论 字体大小[]

  这篇文章主要介绍了Discuz和jQuery变量名冲突的3种解决方法,在开发模板或者插件时经常遇到这个问题,本文列出的3种方法都可以解决这个问题,需要的朋友可以参考下。

  缘起于之前自己初次接触开发,做了一款插件,本地测试安装使用的时候发现所有的下拉菜单都不能够使用,鼠标点击没有任何反应,DIY也不能够使用,后来经1314学习网解答说明是DZ和JQ的$冲突!大家平时在写模版或者插件的时候多多少少都会使用JQ,不知道什么时候就会遇到冲突性问题,最近在网上找了很多相关教程,现在与大家进行分享!

  第一种答案:

  1、使用到的JS文件无需修改。

  2、在页面的最头部,也就是标签下的第一行开始引入,这是为了能确保该JS加载在DZ默认JS之前。

  3、在引用到该JS文件的地方建$改成 jQuery(注意大小写)。 如上方式,一般都能解决大部分的JS不兼容情况。如果还是米哟解决的话尝试一下方法: 将用到的JS里面的所有$君替换成jQuery。

  第二种答案:

  DZ使用了S()作为对象选取函数,刚好与jQuery默认的$()函数重合造成冲突,同样也是为了保持原有的DZ程序不被更改,所以我们要在JQ上修改了。jquery.js 不需要修改这个文件。只要在引用的时候修改一下即可。例如以下代码是jq 的代码。如果不做修改直接用入DZ会报错。

  代码如下:

<script type="text/javascript">// <![CDATA[</p> <p>$j(function(){ //使用jQuery 

$("p").click(function(){ 

alert( $(this).text() ); 

}); 

}); </p> <p>$("pp").style.display = 'none'; //使用prototype 

// ]]></script>

  我们可以引用jQuery给JQ赋予一个变量

  代码如下:

var jq = jQuery.noConflict();</p> <p><script type="text/javascript">// <![CDATA[</p> <p>var jq = jQuery.noConflict(); 

jq(function(){ //使用jQuery 

jq("p").click(function(){ 

alert( jq(this).text() ); 

}); 

}); 

jq("pp").style.display = 'none'; //使用prototype 

// ]]></script>

  替换之后应该是解决js冲突问题。

  第三种,W3C在线手册解决方法,和上面的差不多一样:

  http://www.w3school.com.cn/jquery/core_noconflict.asp

分享来源: 任伟SEO博客 转载请注明出处!(QQ交流:547701130/微信:renweiseo/微信公众号:renwei_seo)
原文地址:http://www.renweiseo.com/discuz/view/2552.html
发布于 2016-06-03 16:29:02 已有0人评论 迩丶の緈諨 作者保留权利

发表评论

必填

选填

选填

必填

已有0人参与,欢迎参与讨论,请在这里发表您的看法、交流您的观点。

亲!看完有什么想法呢?
  • 流泪

    0

  • 打酱油

    0

  • 开心

    0

  • 鼓掌

    0

  • 恐怖

    0

作者介绍

  • 迩丶の緈諨
  • • 主页:
    • 文章:
    • 邮箱:

    SEO是通过对网站的内容,结构,外链等方面进行优化,使网站更符合搜索引擎的抓取,从而提升搜索结果排名,提升网站流量的手段。

    控制面板

    您好,欢迎到访网站!
      查看权限
    «   2020年9月   »
    123456
    78910111213
    14151617181920
    21222324252627
    282930

    猜你喜欢