解决jquery版本冲突的有效⽅法
⽤过jQuery的朋友都知道jQuery不同版本会引发冲突,本⽂就此问题提出有效的解决⽅案如下:
案例:解决jQuery1.3.2和1.4.2的冲突。(本例已测试通过!)
第⼀步:在1.4.2的源代码的最后加上⼀句:
var $j4 = Conflict(true);
之所以在源码这⾥加,⽽不是像⼤多数⽂章提的在要⽤到的时候加,这是因为很多基于1.4.2的插件都要加,在这⾥加可以避免过多插件加这句代码导致重复。这⼀句是将1.4.2的jQuery和$的引⽤权限全部放弃。也就是基于1.4.2的插件不能再⽤jQuery 和$了。同时给予$j4的新的命名空间,注意它是window的属性。看1.4.2的源代码会发现它其实也就执⾏了这两句:
window.$=_$;
window.jQuery=_jQuery;
jquery下载文件插件游戏资源网站道理同window.$=_temp$(返还命名空间)只是命名不同⽽已。
第⼆步:在基于1.4.2的框架的所有插件的头部加上以下代码:
var _temp$ = window.$,_tempjQuery = window.jQuery;
将jQuery1.3.2的$和jQuery放到临时的变量空间上:
window.$ = $j4;
这句和下⾯的那句都是为了给中间的代码能够正确使⽤jQuery和$⽤的。后⾯的$j4是赋予他们正确的引⽤。
window.jQuery = $j4;
之所以要先放临时变量存储,有三点必须这样做的理由:webservice写法
①.我们不希望改动⼤量的jQuery插件源代码,最好是不动,即使改的话,尽量改的少。⽽在头部尾部加改动代码,中间的原始代码不动也是不错的⼀种⽅式。
②.因为1.4.2的已经放弃了jQuery和$的控制权,但是已有的插件代码⼜⽤了他们来做引⽤,因为插件不可能预知冲突,即使有冲突他⼈开发的插件也⼀定要⽤$或者jQuery引⽤,除⾮它不是jQuery下的插件。
重装系统快捷键是哪个键③.为了防⽌插件⾥⾯直接⽤window.$和window.jQuery进⾏引⽤从⽽导致引⽤到1.3.2的jQuery和$,虽然这种情况⽐较少,但是以防万⼀。
中间的原始代码不动,尾部加以下代码:
window.$ = _temp$;//将$的引⽤权限返还给jQuery1.3.
编程insert是什么意思window.jQuery = _tempjQuery;//将jQuery的引⽤权限返还给jQuery1.3.
第三步:以后要⽤基于jQuery1.4.2的选取函数就只能⽤$j4(element)了。
总结:到⽬前为⽌可⾏⽅案:jQuery1.4.2完全放弃$和jQuery的控制权限。1.3.2放弃$的控制权限但不放弃jQuery的权限,其实jQuery也可放弃,只不过要给个别名$j3。prototype最好放在jQuery1.3.2后⾯,它获得$的控制权限。只是以后要⽤jQuery1.4.2就必须⽤$j4来引⽤了。但这样即使有再多的jQuery框架版本冲突问题,也全部解决掉了。假如来了个1.2的jQuery 怎么办,参照(2)的执⾏步骤,只不过第⼀步改为:
黄页网站怎么查var $j2 = Conflict(true);
第三步⽤$j2(element)罢了。道理都是相同的。
相信本⽂所述对⼤家的jQuery程序设计有⼀定的借鉴价值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论