时下,越来越多的
javascripe框架
不断崛起,同时开源网站系统也之间增多。网站建设过程中当使用一些开源的网站程序时,免不了会在javascript上产生冲突。也许网站的开发者习惯使用jQuery,而使用的开源系统又偏偏用了protrtype或者其他一些js框架,那么杯具就此诞生。
此时,难道我们还要去重新了解那个不熟悉的框架么?显然,强大的jQuery已经为我们想到了这一点。只需要简单的几句话,就能够让jQuery和其他任何框架共存了。
其实只要具体分析一下就很容易想到,js框架冲突的最主要原因只有一个:选择器。
对,jQuery的选择器是“$”,prototype的选择器也是“$”,当两者在一起使用的时候,必然有一方会被替代,然后就导致了种种错误。那么,解决两库共存的根本其实就是把选择器分隔开来,jQuery为我们提供了noConflict()方法来释放自己的“$”给别人使用。以下以prototype为例,演示了三种可以两库共存的方法。
方法一:<script src="prototype.js"</script
<script src="jquery.js"</script<scriptjQuery.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<scriptvar $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<scriptjQuery.noConflict();
// Put all your code in your document ready area
jQuery(document).ready(function($){ //关键:闭包内使用$作为选择器(应该是个闭包吧。。)
// Do jQuery stuff using $
$("div").hide();});// Use Prototype with $(...), etc.
$('someid').style.display = 'none';