两个库同时都定义了一个叫$的函数,所以在同时使用的时候会发生冲突。jQuery( http://jquery.com/ https://jquery.org/ )中提供了一种返还$的使用权给其他js库使用的方法。截至到这篇文章完成时(2018/01/20),Prototype.js( http://prototypejs.org/ )的最新版本是1.7.3(2015/09/22),未提供返还使用权的方法。

解决先加载Prototype.js后加载jQuery的问题

解决方法一

如何解决

在引入jQuery后使用jQuery.noConflict();返还$使用权,否则Prototype.js会调用失败。

如何调用

  • 在需要使用jQuery时,使用jQuery( )代替$( )
  • 在需要使用Prototype.js时,使用$( )

解决方法二

如何解决

在引入jQuery后将jQuery的$绑定到其他对象上,例如$j,使用var $j = jQuery.noConflict();

如何调用

  • 在需要使用jQuery时,使用$j( )代替$( )
  • 在需要使用Prototype.js时,使用$( )

解决方法三

如何解决

如果还希望在jQuery代码部分使用$,可以使用命名空间的概念。将所有可以写到documentready()事件中的jQuery代码封装到里面,首先使用也jQuery.noConflict();返还$使用权。方法二中介绍的的将$绑定到其他对象中的方法,此时对于documentready()外的事件同样适用。

如何调用

  • jQuery(document).ready(function($){ })外需要使用jQuery时,使用jQuery( )代替$( )
  • jQuery(document).ready(function($){ })中需要使用jQuery时,使用jQuery( )
  • 在需要使用Prototype.js时,使用$( )

举例

<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict(); 在.ready()事件外,你可以使用jQuery( )调用jQuery jQuery(document).ready(function ($){
//在.ready()事件内,你可以使用$( )调用jQuery
}); //在.ready()事件外,你可以使用$( )调用Prototype.js </script>

解决先加载jQuery后加载Prototype.js的问题

解决方法一

如何解决

两种情况只有这点不同,这里无需添加jQuery.noConflict();,来返还$使用权。

如何调用

  • 在需要使用jQuery时,使用jQuery( )代替$( )
  • 在需要使用Prototype.js时,使用$( )

解决方法二

如何解决

在引入jQuery后将jQuery的$绑定到其他对象上,例如$j,使用var $j = jQuery.noConflict();

如何调用

  • 在需要使用jQuery时,使用$j( )代替$( )
  • 在需要使用Prototype.js时,使用$( )

解决方法三

如何解决

如果还希望在jQuery代码部分使用$,可以使用命名空间的概念。将所有可以写到documentready()事件中的jQuery代码封装到里面。方法二中介绍的的将$绑定到其他对象中的方法,此时对于documentready()外的事件同样适用。

如何调用

  • jQuery(document).ready(function($){ })外需要使用jQuery时,使用jQuery( )代替$( )
  • jQuery(document).ready(function($){ })中需要使用jQuery时,使用jQuery( )
  • 在需要使用Prototype.js时,使用$( )

JavaScript中解决jQuery和Prototype.js同时引入冲突问题的更多相关文章

  1. 解决jquery和prototype库冲突问题

    在项目中同时引入了jquery.js和prototype.js两个文件,在方法调用时启了冲突. 我们在使用 jQuery 的过程中我们会频繁使用 $ 符号,$是JQuery的别名,所有使用$的地方也都 ...

  2. 在JavaScript中重写jQuery对象的方法

    jQuery是一个很好的类库,它给我们解决了很多的客户端编程,任何东西都不是万能的,当它不能满足我们的需求时我们需要对它进行重写,同时也不要影响其原有的功能或者修改其原有的功能:我现在的web应用程序 ...

  3. 转载 javascript中(function($){...})(jQuery)写法是什么意思

    javascript中(function($){...})(jQuery)写法是什么意思   这里实际上是匿名函数function(arg){...}这就定义了一个匿名函数,参数为arg 而调用函数 ...

  4. 深入了解JavaScript中基于原型(prototype)的继承机制

    原型 前言 继承是面向对象编程中相当重要的一个概念,它对帮助代码复用起到了很大的作用. 正文 Brendan Eich在创建JavaScript时,没有选择当时最流行的类继承机制,而是借鉴Self,用 ...

  5. 解决jQuery不同版同时引用的冲突

    今天研发的同事在开发一个新jQuery插件时,遇到一个揪心的问题.平台以前使用的 jQuery版本是1.2.6,偶,天啊!这是古代的版本啊! 由于很多功能基于老版本,不能删除啊,同志们都懂的! 于是我 ...

  6. 解决jquery与zepto等其它库冲突兼容的问题

    解决jquery与zepto等其它库冲突兼容的问题;(function ($) {    }) (jQuery); ;(function ($) {    }) (Zepto); 在Bootstrap ...

  7. 【转】JavaScript中的constructor与prototype

    最初对js中 object.constructor 的认识: 在学习JS的面向对象过程中,一直对constructor与prototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下 ...

  8. Javascript中的继承与Prototype

    之前学习js仅仅是把w3school上的基本语法看了一次而已,再后来细看书的时候,书中会出现很多很多没有听过的语法,其中一个就是js的继承以及总能看到的prototype.我主要在看的两本js书是&l ...

  9. jQuery和Prototype的兼容性和冲突的五种解决方法

    第一种情况:先加载Prototype,再加载jQuery方法一:jQuery 库和它的所有插件都是在jQuery名字空间内的,包括全局变量也是保存在jQuery 名字空间内的. 使用jQuery.no ...

随机推荐

  1. ireportdesigner下载页面

    iReport主页:http://community.jaspersoft.com/project/ireport-designer iReport下载地址:http://sourceforge.ne ...

  2. Linux服务器更换主板后,网卡识别失败的处理方法

    1)现象说明公司IDC机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及ip信息都在,但是ip却ping不通了,进一步排查,重 ...

  3. MySQL两种存储引擎: MyISAM和InnoDB 简单总结

    MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点 ...

  4. Python-注册登陆-20

    username = input('请输入你要注册的用户名:') password = input('请输入你要注册的密码:') with open('list_of_info',mode='w',e ...

  5. js实现随机的四则运算题目(2)-更新界面

    上次的代码提交完成后,有很多bug.比如函数会重复调用执行,每点击一次按钮都会在生成题目的下方直接生成新的题目,于是我在代码前面添加了如下的代码: function play_allE() { doc ...

  6. Code Review —— by12061154Joy

    对结对队友刘丽萍的代码进行了复审: 优点: 1,代码逻辑正确,基本能够完全需求 2,用了不少C#自带的函数,第一次写C#,相信是查阅了不少资料,虽然还有很多地方值得优化,不过第一次能做到这样已经很不错 ...

  7. html 空白汉字占位符&#12288;

    在爬取京东评论时,复制html内容,发现文本中有些空格的宽度没见过.后来用htmlParser解析html页面时,发现这些空格都被替换为 . 12288是Unicode编码,&#表示宋体,&a ...

  8. pandas(DataFrame)

    DataFrame是二维数据结构,即数据以行和列的表格方式排列!特点:潜在的列是不同的类型,大小可变,标记行和列,可以对列和行执行算数运算. 其中Name,Age即为对应的Columns,序号0,1, ...

  9. 牛客OI周赛7-提高组

    https://ac.nowcoder.com/acm/contest/371#question A.小睿睿的等式 #include <bits/stdc++.h> using names ...

  10. PAT 1016 部分A+B

    https://pintia.cn/problem-sets/994805260223102976/problems/994805306310115328 正整数A的“D~A~(为1位整数)部分”定义 ...