2010-12-01 71 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,而不必擔心衝突。