Jquery与其它js框架(MooTools以及Prototype、Dojo、YUI等等)之间共享冲突的解决办法

转自:zend实验室

注:jquery官方原文:Using jQuery with Other Libraries


本篇文章将帮助你解决Jquery与其它js框架之间的共享冲突的问题,实现jquery与Mootools之间的共存。最近在做一些关于CRM的界面,其中用到了一套界面库,是以Mootools为基础开发的,但是后来考虑需要引入一些新的组件,并且这些组件都是以jquery为基础开发的,如leightbox等。结果引入jquery之后却发现$在两个框架中都有各自的定义,冲突也显现出来了。经过收集,网上大致提供了三种解决办法。

方法一、

 

<html>
  <head>
    <script src="Mootools.js"></script>
    <script src="jquery.js"></script>
    <script>
      jQuery.noConflict();//释放jquery中$定义,并直接使用jQuery代替平时的$
      jQuery(document).ready(function(){
        jQuery("div").hide();
      });
      $('someid').style.display = 'none';//此处中的$为原Mootools中的$,使用方法不变
    </script>
  </head>
  <body>
  </body>
  </html>

 

方法二、

 

<html>
   <head>
     <script src="Mootools.js"></script>
     <script src="jquery.js"></script>
     <script>
       jQuery.noConflict();  
       //将你使用的jquery代码放到document ready方中
       jQuery(document).ready(function($){
         // 此处为jQuery的$定义
         $("div").hide();
      });  
       //此处为Mootools的定义
      $('someid').style.display = 'none';
     </script>
   </head>
   <body>
   </body>
</html>

 

方法三、

 

 <html>
  <head>
     <script src="Mootools.js"></script>
     <script src="jquery.js"></script>
    <script>
      var $j = jQuery.noConflict();//以$j来替代jQuery中的$,同时区分mootools
        $j(document).ready(function(){
        $j("div").hide();
        });
       $('someid').style.display = 'none';  //原mootools中的$照旧使用
    </script>
  </head>
  <body></body>
  </html>

 

  zend实验室强烈建议你使用第三中方法来解决jquery与其它js框架之间共享冲突问题,理由是它既简短,又能实现你想要的结果,并且不会像第二个方法中那样存在使用位置限制。想在哪用就在哪用,随心所欲。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值