2011-08-15 17 views
1

質問はほぼ理論的です。しかし、前回私は微妙なバグに遭遇しました。ページに子フレームが含まれ、親フレームと子フレームの両方が同じjsファイルで使用されている場合、開始時に$ = jQueryを設定しないと、このjsファイルの機能がクラッシュします。ここで何ができるのでしょうか?

ありがとうございます!

+0

私はあなたが何を意味するかは完全にはわかりませんが、 '$ = jQuery'はすでに内部的に設定されています。 – pimvdb

+0

おそらく、あなたは非常に古いバージョンのjQueryを使用しているか、スクリプトが奇妙に構築されています。エラーメッセージが表示されますか? – Kokos

+0

皆さんありがとう!私は自分の誤りを犯しました。問題はjQuery.noConflict()です。 – baio

答えて

3

ページ内に他のJavaScriptライブラリが含まれている場合は、$が使用されます。 MootoolsおよびPrototypeは両方とも$を使用します。

あなたはjQueryのを含めると、あなたはプロトタイプが含まれている場合は任意のjQueryのコードがうまくいく前に、あなたが$ = jQueryを設定する必要があると思いますので、その後$変数は、上書きされます:

<link rel="stylesheet" href="jQuery.js" /> 
<link rel="stylesheet" href="prototype.js" /> 
<script>$ = jQuery</script> 

同様に、@GuffaとしてnoConflictをどこにでも呼び出すと、$という変数が設定されなくなります。

理想的には、$変数を使用しないと問題が発生する可能性があります。ちょうどような何か:

jQuery.noConflict(); 
var jQ = jQuery; 

をそしてあなたは$を持っているでしょうとしてjQ変数を使用します。そうすれば葛藤は起こりません。

3

$変数から参照を削除しない限り、これは必要ありません。

$変数からjQueryを切り離したり、$という名前の関数(関数など)を使用しているかどうかを、noConflictメソッドで確認してください。