2010-12-01 89 views
0
我有与motools库冲突的与我jQuery库的一个问题

JQuery的幻灯片和MooTools的冲突

下面的代码:

<script language="Javascript" type="text/javascript" src="revamp/js/jquery-1.4.2.js"></script> 
<script language="Javascript" type="text/javascript" src="revamp/js/jquery.blinds-0.9.js"></script> 

<script type="text/javascript" src="js/mootools-1.2-core.js"></script> 
<script type="text/javascript" src="js/_class.viewer.js"></script> 

<script type="text/javascript">//<![CDATA[ 
     window.addEvent('domready',function(){ 
     var V5 = new viewer($('boxCont').getChildren(),{ 
      mode: 'alpha', 
      fxOptions: {duration:500}, 
      interval: 6000 
     }); 
     V5.play(true); 

     }); 
</script> 

<script type="text/javascript"> 

      $(window).load(function() { 
       // start the slideshow 
       $('.slideshow').blinds(); 
      }) 
</script> 

如果我禁用的mootools,幻灯片工作(反之亦然jQuery)。我试图围绕jQuery.noConflict()包装jQuery;像这样:

<script type="text/javascript"> 
$.noConflict(); 
    jQuery(document).ready(function($) { 
     $(window).load(function() { 
       // start the slideshow 
       $('.slideshow').blinds(); 
      }) 
}); 
</script> 

但仍依赖mootools脚本不起作用。请大家帮忙,因为我不熟悉jQuery/javascript。

谢谢!

回答

1

一旦你调用jQuery.noConflict(),你可以通过jQuery而不是$引用jQuery。 $然后可以被MooTools或其他JavaScript库使用。

<script type="text/javascript"> 
    jQuery.noConflict(); 
    jQuery(document).ready(function() { 
     jQuery(window).load(function() { 
       // start the slideshow 
       jQuery('.slideshow').blinds(); 
     }) 
    }); 
</script> 

如果你想给jQuery的另一个名字,你可以做到以下几点:

<script type="text/javascript"> 
    var jq = jQuery.noConflict(); 
    jq(document).ready(function() { 
     jq(window).load(function() { 
       // start the slideshow 
       jq('.slideshow').blinds(); 
     }) 
    }); 
</script> 
+0

您可以始终* *是指作为jQuery的jQuery的`()`。 – alex 2010-12-01 04:04:44

0

您想要jQuery.noConflict()

但是您并不需要,因为您正在为您的jQuery别名使用jQuery,并且您正在传递$作为映射到jQuery对象的参数。

只要您的所有jQuery(和jQuery)都发生在jQuery(document).ready()之内,那么您可以使用$作为jQuery,而不必担心冲突。