2012-01-20 14 views
1

私はトグル効果のための特定のファイルセットを持っています。私はこれらの2つのファイルをsepartely使用すると、私のために働く。しかし私は私のjsファイルのコレクションでファイルをコピーしてエラーが出るようにしています。それは私に矛盾するエラーを与えます。火かき棒。最初のファイルにエラーが表示されます。jqueryの矛盾するエラーはありません

<script> 
$(document).ready(function() { 
//$.noConflict(); 
    $('.toggle_block').toggleElements({ 
     fxAnimation:'slide', 
     fxSpeed:'fast', 
     className:'toggler' 
    }); 

}); 
</script> 

Firebugのエラーです:

$(".toggle_block").toggleElements is not a function 
className:'toggler' 

その縮小さバージョンがjsfiddleリンク上です。 http://jsfiddle.net/cHjMD/

矛盾するエラーが発生するたびに、私は$.noConflict();を使用してそれを削除し、ときどき私のエラーも並べ替えました。しかし、今回は私を助けてくれません。私はこの問題を永続的に分類したい。ここでもnoconflictコードにコメントしました。

リクエスト私にはnoConflict関数を読むためのリンクを提供しないでください。私は何度もそれを読んだ。より良い方法で定義すれば、私は満足しています。 PHPとは異なり、それは、変数の開始を示しjavacriptにそれだけで別の文字であるとすることができます - $が特殊文字ではありませんJavaScriptで

jQuery(document).ready(function($){ 

答えて

1

変更

$(document).ready(function() { 

任意の変数の一部として使用できます。 jQueryは変数var $をjQueryオブジェクトのショートカットとして使用することに決めました。ここでも、$ isntはjQueryのための特別な予約語ではないので、どのライブラリやスクリプトもそれを使用しようとする可能性があり、競合が発生します。

$ .noConflict();関数はjQueryに$変数の制御をあきらめ、他のライブラリが使用していたものに復元します。あなたがそれを呼び出した後、$はもはやjQueryを表していません。このため、エラーメッセージが表示されます。

上記のソリューションは、$ aliasを使用してdocument.ready関数を設定していないため、代わりに完全なjQueryオブジェクトを使用しています。また、ready()関数はjQueryオブジェクトをパラメータとして渡します。したがって、パラメータ名として$を使用すると、$変数はjQueryをもう一度表しますが、document.ready関数のスコープ内でのみ表示されます。

jsfiddleでリンクされたライブラリは、競合モードを使用しないように正しく設定されているため、競合するライブラリがある可能性がありますが、競合モードを使用しないようjqueryに伝えることはできません。準備書類上noconflictコールを追加してみてください... IE

私はこのエラーを取得しています今まで、私はこれを変更する必要が
jQuery.noConflict(); 
jQuery(document).ready(function($){ 
+0

...その、実際にやってワットを教えてください。.. –

+0

エラーが私から削除されているがコードを上に貼り付けた最初のファイルしかし今、私は私が提供しているjsfiddleリンクを持っている私のライブラリに私にエラーを与えています。 –

+0

私はより多くの情報を元の投稿に更新しました – jakraska

関連する問題