让jQuery与其他框架共存

来源:互联网 发布:淘宝客qq群加人 编辑:程序博客网 时间:2024/05/29 16:21

时下,越来越多的javascripe框架不断崛起,同时开源网站系统也之间增多。网站建设过程中当使用一些开源的网站程序时,免不了会在javascript上产生冲突。也许网站的开发者习惯使用jQuery,而使用的开源系统又偏偏用了protrtype或者其他一些js框架,那么杯具就此诞生。

此时,难道我们还要去重新了解那个不熟悉的框架么?显然,强大的jQuery已经为我们想到了这一点。只需要简单的几句话,就能够让jQuery和其他任何框架共存了。

其实只要具体分析一下就很容易想到,js框架冲突的最主要原因只有一个:选择器。对,jQuery的选择器是“$”,prototype的选择器也是“$”,当两者在一起使用的时候,必然有一方会被替代,然后就导致了种种错误。那么,解决两库共存的根本其实就是把选择器分隔开来,jQuery为我们提供了noConflict()方法来释放自己的“$”给别人使用。以下以prototype为例,演示了三种可以两库共存的方法。

方法一:

<script src="prototype.js"></script><script src="jquery.js"></script><script>jQuery.noConflict(); //释放$// Use jQuery via jQuery(...)jQuery(document).ready(function(){jQuery("div").hide();});// Use Prototype with $(...), etc.$('someid').style.display = 'none';</script>

方法二:

<script src="prototype.js"></script><script src="jquery.js"></script><script>var $j = jQuery.noConflict(); //重定义了$j为jQuery的选择器// Use jQuery via $j(...)$j(document).ready(function(){$j("div").hide();});// Use Prototype with $(...), etc.$('someid').style.display = 'none';</script>

方法三:

<script src="prototype.js"></script><script src="jquery.js"></script><script>jQuery.noConflict();// Put all your code in your document ready areajQuery(document).ready(function($){ //关键:闭包内使用$作为选择器(应该是个闭包吧。。)// Do jQuery stuff using $$("div").hide();});// Use Prototype with $(...), etc.$('someid').style.display = 'none';</script>

瓢虫通常使用的是最后一种,在外部将“$”释放给其他库调用,而在内部还是能依照平时习惯自由使用“$”。


原创粉丝点击