您的位置:首页 > Web前端 > jquery

jQuery多个版本间,以及与其他js文件冲突的解决方法

更多 2016/8/13 来源:jquery学习浏览量:1991
学习标签: jquery
本文导读:在使用jQuery进行前端开发时,如果某个页面需要引用不同版本的jQuery文件、或者该页面引用的其它JS文件库与jquery源码文件发送了冲突,页面就会报错,主要原因是$符号的问题,下面介绍解决方法。

一、同一页面jQuery多个版本引起冲突的解决方法

 

 
HTML 代码   复制

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>jQuery测试页</title>
</head>
<body>
<!-- 引入1.6.4版的jq -->
<script src="/jquery/1.6.4/jquery。js"></script>
<script> var jq164 = jQuery.noConflict(true); </script>
<!-- 引入1.4.2版的jq -->
<script src="/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>

 

二、同一页面jQuery和其他js文件库冲突的解决方法

 

例如:如下html页面

 

 
HTML 代码   复制

<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>

 

方式1、通过全名替代简写的方式来使用 jQuery

 

 
HTML 代码   复制

<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、创建自己的简写

noConflict() 可返回对 jQuery 的引用,您可以把它存入变量,以供稍后使用

 

 
HTML 代码   复制

<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>

 

方式3、使用语句块

 
 
HTML 代码   复制

<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>

 

收藏
165
很赞
155