2010-12-01 18 views
0

は、私は私のjQueryライブラリとmotoolsライブラリ矛盾と問題を抱えています: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ライブラリで使用可能です。あなたはjQueryのに別の名前を付けたい場合は、次の操作を行うことができます

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

<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

+0

スライドショーは動作しますが、mootools依存スクリプトは動作しません。 jQueryに与えたコードを使用しました。 – catandmouse

+0

さて、問題は解決しました。どうやら私が見ていないスライドショーのコードがいくつかあります。 "$"を "jQuery"に変更しました。また、スクリプトの位置を変更して、ライブラリーを使用しているものはすべて、そのライブラリーのすぐ後に置くようにしました。どうもありがとう! – catandmouse

0

希望するjQuery.noConflict()

しかし、あなたはあなたのjQueryエイリアスにjQueryを使用しており、jQueryオブジェクトにマップする引数として$を渡しているため、実際には必要ありません。

すべてのjQuery(とjQueryのみ)がjQuery(document).ready()の内部で発生している場合は、$をjQueryに使用でき、衝突について心配する必要はありません。

関連する問題