不同的jquery版本冲突怎么办


本文摘自PHP中文网,作者coldplay.xixi,侵删。

不同的jquery版本冲突的解决方法:首先在【1.4.2】的源代码的最后加相关代码;然后在基于【1.4.2】的框架的所有插件的头部加上相关代码;最后要用基于【jQuery1.4.2】的选取函数就用【$j4(element)】。

本教程操作环境:windows7系统、jQuery1.3.2&&jQuery1.4.2版本,该方法适用于所有品牌电脑。

不同的jquery版本冲突的解决方法:

案例:解决jQuery1.3.2和1.4.2的冲突。

第一步:在1.4.2的源代码的最后加上一句 :

1

var $j4 = jQuery.noConflict(true);

之所以在源码这里加,而不是像大多数文章提的在要用到的时候加,这是因为很多基于1.4.2的插件都要加,在这里加可以避免过多插件加这句代码导致重复。这一句是将1.4.2的jQuery和$的引用权限全部放弃。也就是基于1.4.2的插件不能再用jQuery和$了。同时给予$j4的新的命名空间,注意它是window的属性。看1.4.2的源代码会发现它其实也就执行了这两句:

1

2

window.$=_$;

window.jQuery=_jQuery;

道理同window.$=_temp$(返还命名空间)只是命名不同而已。

第二步:在基于1.4.2的框架的所有插件的头部加上以下代码:

1

var _temp$ = window.$,_tempjQuery = window.jQuery;

将jQuery1.3.2的$和jQuery放到临时的变量空间上:

1

window.$ = $j4;

这句和下面的那句都是为了给中间的代码能够正确使用jQuery和$用的。后面的$j4是赋予他们正确的引用。

1

window.jQuery = $j4;

之所以要先放临时变量存储,有三点必须这样做的理由:

①.我们不希望改动大量的jQuery插件源代码,最好是不动,即使改的话,尽量改的少。而在头部尾部加改动代码,中间的原始代码不动也是不错的一种方式。

②.因为1.4.2的已经放弃了jQuery和$的控制权,但是已有的插件代码又用了他们来做引用,因为插件不可能预知冲突,即使有冲突他人开发的插件也一定要用$或者jQuery引用,除非它不是jQuery下的插件。

③.为了防止插件里面直接用window.$window.jQuery进行引用从而导致引用到1.3.2的jQuery和$,虽然这种情况比较少,但是以防万一。

中间的原始代码不动,尾部加以下代码:

1

2

window.$ = _temp$;//将$的引用权限返还给jQuery1.3.

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)的执行步骤,只不过第一步改为:

1

var $j2 = jQuery.noConflict(true);

第三步用$j2(element)罢了。道理都是相同的。

相信本文所述对大家的jQuery程序设计有一定的借鉴价值。

相关免费学习推荐:JavaScript(视频)

以上就是不同的jquery版本冲突怎么办的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

jQuery收费吗?

jQuery怎么判断元素是否被点击

jQuery wrap()方法是什么意思

jQuery如何解除事件绑定?

jQuery是干嘛的

jQuery中的not怎么用

jQuery选择器有什么优点?

jQuery如何判断文件是否存在

jQuery怎么添加css样式

jQuery怎么删除html元素

更多相关阅读请进入《jQuery》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...