jQuery多个版本和其他js库冲突的解决方法

 更新时间:2016年08月11日 11:24:41   作者:阿讯小飞  
jQuery多个版本或和其他js库冲突主要是常用的$符号的问题,该怎么解决呢?下面小编给大家带来了jQuery多个版本和其他js库冲突的解决方法,一起看下吧

jQuery多个版本或和其他js库冲突主要是常用的$符号的问题,这个问题 jquery早早就有给我们预留处理方法了,下面一起来看看解决办法。

1.同一页面jQuery多个版本或冲突解决方法。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery测试页</title>
</head>
<body>
<!-- 引入1.6.4版的jq -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script>
<script> var jq164 = jQuery.noConflict(true); </script>
<!-- 引入1.4.2版的jq -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script> var jq142 = jQuery.noConflict(true); </script>
<script>
(function($){
//此时的$是jQuery-1.6.4
$('#');
})(jq164);
</script>
<script>
jq142(function($){
//此时的$是jQuery-1.4.2
$('#');
});
</script>
</body>
</html>

2.同一页面jQuery和其他js库冲突解决方法

jQuery noConflict() 方法

noConflict() 方法会释放会 $ 标识符的控制,这样其他脚本就可以使用它了。

jquery.js在prototype.js之前进行引入,如:

<script src="jquery.js" type="text/javascript"></script>
<script src="prototype.js" type="text/javascript"></script>
<p id="pp">test---prototype</p>
<p>test---jQuery</p> 

2.1 当然,您仍然可以通过全名替代简写的方式来使用 jQuery:

<script type="text/javascript">
jQuery.noConflict(); //将变量$的控制权让渡给prototype.js,全名可以不调用。
jQuery(function(){ //使用jQuery
jQuery("p").click(function(){
alert( jQuery(this).text() );
});
});
//此处不可以再写成$,此时的$代表prototype.js中定义的$符号。
$("pp").style.display = 'none'; //使用prototype
</script> 

2.2 您也可以创建自己的简写。noConflict() 可返回对 jQuery 的引用,您可以把它存入变量,以供稍后使用。请看这个例子:

<script type="text/javascript">
var $j = jQuery.noConflict(); //自定义一个比较短快捷方式
$j(function(){ //使用jQuery
$j("p").click(function(){
alert( $j(this).text() );
});
});
$("pp").style.display = 'none'; //使用prototype
</script> 

2.3 如果你的 jQuery 代码块使用 $ 简写,并且您不愿意改变这个快捷方式,那么您可以把 $ 符号作为变量传递给 ready 方法。这样就可以在函数内使用 $ 符号了 - 而在函数外,依旧不得不使用 "jQuery":

<script type="text/javascript">
jQuery.noConflict(); //将变量$的控制权让渡给prototype.js
jQuery(document).ready(function($){
$("p").click(function(){ //继续使用 $ 方法
alert( $(this).text() );
});
});
jQuery(function($){ //使用jQuery
$("p").click(function(){ //继续使用 $ 方法
alert( $(this).text() );
});
});
</script> 

2.4 使用语句块:

<script type="text/javascript">
jQuery.noConflict(); //将变量$的控制权让渡给prototype.js
(function($){ //定义匿名函数并设置形参为$
$(function(){ //匿名函数内部的$均为jQuery
$("p").click(function(){ //继续使用 $ 方法
alert($(this).text());
});
});
})(jQuery); //执行匿名函数且传递实参jQuery
$("pp").style.display = 'none'; //使用prototype
</script> 

这种使用语句块的方法非常有用,在我们自己写jquery插件时,应该都使用这种写法,因为我们不知道具体工作过程中是如何顺序引入各种js库的,而这种语句块的写法却能屏蔽冲突。

注意:

1.引用javascript类库时,把jQuery引用放在最后面,可以避免冲突。

2.特别要注意jQuery()代替$()时,jQuery是区分大小写的,因为javascript本身就是区分大小写的。

以上所述是小编给大家介绍的jQuery多个版本和其他js库冲突的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • jquery新的绑定事件机制on方法的使用方法

    jquery新的绑定事件机制on方法的使用方法

    这篇文章主要介绍了jQuery新的绑定事件机制on方法的使用方法,需要的朋友可以参考下
    2014-04-04
  • jQuery实现购物车

    jQuery实现购物车

    这篇文章主要为大家详细介绍了jQuery实现购物车功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • jquery实现折叠菜单效果【推荐】

    jquery实现折叠菜单效果【推荐】

    本文主要介绍了jquery实现折叠菜单效果的实例,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 基于jquery的跟随屏幕滚动代码

    基于jquery的跟随屏幕滚动代码

    我们在很多网站看到,当我们滚动网页时,网页内的广告或某个小区域并不会消失,而是浮动在屏幕的某个地方,特别是一些局域广告
    2012-07-07
  • 使用jQuery,Angular实现登录界面验证码详解

    使用jQuery,Angular实现登录界面验证码详解

    这篇文章主要介绍了使用jQuery,Angular实现登录界面验证码详解,需要的朋友可以参考下
    2017-04-04
  • 基于Jquery实现万圣节快乐特效

    基于Jquery实现万圣节快乐特效

    本文使用jquery代码实现万圣节特效,代码简单易懂,万圣节送给大家不一样的礼物,参考下本文大家也一起制作吧
    2015-11-11
  • jQuery操作css方法的超全用法

    jQuery操作css方法的超全用法

    最近看了下jQuery的源代码,其中关于CSS及className的操作思想确实很不错,值得借鉴,下面这篇文章主要给大家介绍了关于jQuery操作css方法的超全用法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • jQueryMobile之Helloworld与页面切换的方法

    jQueryMobile之Helloworld与页面切换的方法

    这篇文章主要介绍了jQueryMobile之Helloworld与页面切换的方法,实例分析了jQueryMobile的基础用法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • JQuery悬停控制图片轮播——代码简单

    JQuery悬停控制图片轮播——代码简单

    jquery实现的鼠标悬停图片自动轮播效果,当把鼠标悬停到图片时,图像就会不断循环播放,速度非常快,效果非常逼真,就和在放武侠片一样,使用了jquery实现
    2015-08-08
  • jquery插件Jplayer使用方法简析

    jquery插件Jplayer使用方法简析

    这篇文章主要介绍了jquery插件Jplayer使用方法简析,具有实用价值,感兴趣的小伙伴们可以参考一下
    2016-04-04

最新评论