让jQuery与其他框架共存

时下,越来越多的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 area
jQuery(document).ready(function($){ //关键:闭包内使用$作为选择器(应该是个闭包吧。。)
// Do jQuery stuff using $
$("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').style.display = 'none';
</script>

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值