【php】jquery类库与其它js类库产生冲突的解决方案

今天在web开发的时候,由于美工引入了几个第三方js库,导致和jquery插件不兼容,

原因是第三方也使用了$或Jquery作为变量名,遇到这个问题一般的解决方案就是修改第三方的js程序,这样解决的话却是很是麻烦,好在jq有多库共存机制

多库共存机制

jQuery多库共存机制指jQuery库完全兼容第三方库,例如jQuery中使用$做为函数入口,在该页面同时引入另一个库,其中也使用了$做为函数名。因此jQuery与该库发生冲突。

jQuery提供了noConflict函数解决冲突

noConflict

示例代码演示:

 

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <HTML>
3  <HEAD>
4   <TITLE> New Document </TITLE>
5     <script src = "http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js" language = "javascript"></script>
6  <script>
7   //兼容代码
8   var $1 = $.noConflict();
9   $1(document).ready(function(){
10    alert($1("#txt1").val())
11    alert($("txt1").value) ;
12   })
13  </script>
14     <SCRIPT LANGUAGE="JavaScript">
15   <!--
16  //第三方库
17   function $(str)
18   {
19   return document.getElementById(str) ;
20   
21  
22   function jQuery(str)
23   {
24   return document.getElementById(str) ;
25   }
26   //-->
27   </SCRIPT>
28  </HEAD>
29  
30  <BODY>
31  <input type = "text" id = "txt1" value = "aa" />
32  </BODY>
33 </HTML>

 

noConflict重新将jQuery入口指针指向$1,此时可以用$1访问jQuery库,其中兼容代码要写在第三方库载入之前(如果写在之后,jQuery的$和jQuery入口被第三方库覆盖了,无法调用兼容代码)。

这种方式使用特点:

  1. 首先引入jq框架
  2. 第三方js框架
  3. 使用noconflick重定向$
  4. 第三方js书写

    最后引入的js框架会覆盖先引入的js框架

引申
如果1和2顺序互换,那么3和4也必须互换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值