2011-11-11 7 views
0

私はjqueryにライブラリのグループを使用しています。私は(script.php)という名前の単一のPHPファイルを作成し、このファイルにすべてのjqueriesライブラリを含めました。いつでもどこでもJqueryが必要な場合は、このscript.phpファイルを含めるだけです。すべてがうまくいっていますが、私の図書館は他と葛藤しています。私が$(document).ready(function() {の前に$ .noConflict()を使用している場合、または$(document).ready(function() {の直後に他のほとんどのライブラリが競合し始めます。エラーを出している私の特定のファイルは、<script type="text/javascript" src="js/toggle.js"></script>です。次のコードがあります。とにかく私はコードを修正したり、問題を解決することができます。noConflictはエラーを解決していません

$(document).ready(function() { 

$('.toggle_block').toggleElements({ 
    fxAnimation:'slide', 
    fxSpeed:'fast', 
    className:'toggler' 
}); 

}); 

答えて

-1

jQuery.noConflict()は、jQueryのインスタンスを返します。 noConflictを呼び出すことは意味をなさない。あなたが$記号を使用して別のライブラリを持っている場合、あなたはjQueryのjQueryの後にこの権利を置くことによって実行された前にそれが何だったかに$を復元することができ

var $q = jQuery.noConflict(); //$q = independent instance of jQuery 
$q(document).ready(function() { 

    $q('.toggle_block').toggleElements({ 
     fxAnimation: 'slide', 
     fxSpeed: 'fast', 
     className: 'toggler' 
    }); 

}); 
+0

興味深い例を、私はあなたを与える-1 "_Calling noConflictはどんなsense._をしない" ため。あなたに意味をなさないのであれば、jQuery開発者よりもスマートです(http://api.jquery.com/jQuery.noConflict/)。それは非常に便利な機能であり、時には非常に有用です。 – Tadeck

0

だろうnoConflictを使用してあなたの目的のために

付属:

$.noConflict() 

次に、あなただけの代わりに$のこのようなjQueryを使用してのため$シンボルを残すことができます他のライブラリ:

jQuery(document).ready(function() { 
    jQuery('.toggle_block').toggleElements({ 
     fxAnimation:'slide', 
     fxSpeed:'fast', 
     className:'toggler' 
    }); 
}); 

することができます、あなたがしたい場合のように、もちろん、jQueryのための独自の短縮シンボルを作る:重要な問題は、一度に一つだけのライブラリを使用してすることができるということである

var $j = jQuery; 

$j(document).ready(function() { 
    $j('.toggle_block').toggleElements({ 
     fxAnimation:'slide', 
     fxSpeed:'fast', 
     className:'toggler' 
    }); 
}); 

$シンボル。など、この一つとして、他の回避策があります

jQuery.noConflictため
(function($) { 
    // in this block, $ is an argument variable that has been temporarily 
    // given the value of jQuery without interfering with the value of $ outside 
    // this block of code 
    $(document).ready(function() { 
     $('.toggle_block').toggleElements({ 
      fxAnimation:'slide', 
      fxSpeed:'fast', 
      className:'toggler' 
     }); 
    }); 

}(jQuery)); 
+0

これを使用して、このライブラリに関連するプラグイン全体がエラーを出し始めました。 'jQuery.toggleElementsShownは関数ではありません。 'このファイルは問題は解決されていますが、他の人から始まった。 –

0

API documentation()これは言う:

我々はjQueryのと一緒に、別のJavaScriptライブラリを使用する必要がある場合、我々は の制御を返すことができます$戻っているとすぐに$.noConflict()を実行する手段として $ .noConflict(への呼び出し)

$ヴァリアーと他のライブラリへbleはjQueryのエイリアスではなくなりました。したがって、このコード:

$(document).ready(function() { 
    // ... 
}); 

...他のライブラリでjQueryメソッドを使用しようとしています。

あなたはおそらく、この欲しい:

// In the outer scope, we use jQuery 
jQuery(document).ready(function($) { 
    // In this scope we can use $ 
}); 
関連する問題