解决jQuery和其他库的冲突

在使用jQuery开发的时候,可能还会使用到其他的JS库,比如Prototype,但多库共存时可能会发生冲突;若是发生冲突后,可以通过以下几种方案进行解决: 
一:在其他库和jQuery库都被加载完毕后,可以在任何时候调用jQuery.noConflict()函数来将变量$的控制权移交给其他Javascript库。

jQuery在其他加载之后:


<!DOCTYPE >
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../prototype.js"></script>  
<script type="text/javascript" src="../jquery-1.9.1.js"></script>
<title>无标题文档</title>
</head>

<body>
<p>使用jQuery</p>
<p id="pp">使用prototype.js隐藏元素</p>
<script language="javascript">
 jQuery.noConflict();//将变量$的控制权移交给prototype.js
 jQuery(function(){
  jQuery("p").click(function(){//使用jQuery
  alert(jQuery(this).text());
  });
 });
 $("pp").style.display = 'none';//使用prototype.js隐藏元素
</script>

</body>

</html>


二、也可以自定义一个快捷方式:

<script language="javascript">
 var $j = jQuery.noConflict();  //自定义一个快捷方式
 $j(function(){      //使用jQuery,利用自定义快捷方式----$j
  $j("p").click(function(){//使用jQuery
  alert($j(this).text());
  });
 });
 $("pp").style.display = 'none';//使用prototype隐藏元素
</script>


三、在函数内部继续使用$()方法:

<scriptlanguage="javascript">

 jQuery.noConflict();  //将变量$的控制权移交给prototype.js

 (function($){                  //定义匿名函数并设置形参为$

  $(function(){                 //匿名函数的内部均为jQuery

     $("p").click(function(){    //在函数内部继续使用$()方法

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

     });

  });

 })(jQuery);                    //执行匿名函数且传递实参jQuery

 $("pp").style.display = 'none';//使用prototype隐藏元素

</script>


四、定义匿名函数:

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


五、jQuery在其他库加载之前:

<!DOCTYPE>  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<script type="text/javascript" src="../jquery-1.9.1.js"></script>  
<script type="text/javascript" src="../prototype.js"></script>  
<title>无标题文档</title>  
</head>  
  
<body>  
  
<p>使用jQuery</p>  
<p id="pp">使用prototype.js隐藏元素</p>  
<script language="javascript">  
 //jQuery.noConflict();//无需将变量$的控制权移交给prototype.js  
 jQuery(function(){        //直接使用jQuery  
    jQuery("p").click(function(){//使用jQuery  
        alert(jQuery(this).text());  
    });  
 });  
 $("pp").style.display = 'none';//使用prototype.js隐藏元素  
</script>  
  
</body>  
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值