2

私はいくつかの並列jsローディングの良さのためにLABjsを使用しています。

しかし、何らかの理由で、「$ が定義されていません」というエラーがデバッグ コンソールに表示されます。

私のコードは次のとおりです。

<script>
$LAB.script("http://use.typekit.com/blah.js").script("/assets/js/libs/jquery-1.5.1.min.js").script("/assets/js/libs/basic-jquery-slider.min.js").wait().script("/assets/js/libs/modernizr-1.7.min.js").script("/assets/js/libs/jquery.watermarkinput.js").wait().script("/assets/js/libs/jquery-ui-1.8.14.custom.min.js").wait().script("/assets/js/effects.js").wait(function(){});

そして私のeffects.jsには私が持っています。

try{Typekit.load();}catch(e){}
$('#banner').bjqs({
'width' : 980,
'height' : 212,
'showMarkers' : false,
'showControls' : false,
'centerMarkers' : false
});

すべてが機能しますが、前述のエラーが発生します。jqueryオブジェクトがそこにあるはずです(そして、すべてが機能していなければならない)理由がわかりませんが、なぜエラーが発生するのですか?

何か案は?私はlabjsを正しく使用していると確信していますが、このエラーはIE7を混乱させていると思います:(

おそらく、後者のコードに $(document).ready ラウンドを追加する必要がありますか? しかし、それはlabjsを混乱させるようです。

事前に助けてくれてありがとう!

4

2 に答える 2

0

フッターのインクルードに隠されているのは、私のeffects.jsファイルへの別の呼び出しであることに気づきました。しかし、これは通常のスクリプトタグにあります。これは、エラーが発生して実行され、2回呼び出されているときに機能している理由を説明しています。1回はlabjs内で、もう1回は呼び出されていません。なんてばか:(みんなでやってくれてありがとう!そしてごめんなさい!

于 2012-05-29T07:53:26.967 に答える
0

これを試して:

<script>
$LAB
.script("http://use.typekit.com/blah.js")
.script("/assets/js/libs/jquery-1.5.1.min.js").wait() // <---- ADD THIS .wait()
.script("/assets/js/libs/basic-jquery-slider.min.js").wait()
.script("/assets/js/libs/modernizr-1.7.min.js")
.script("/assets/js/libs/jquery.watermarkinput.js").wait()
.script("/assets/js/libs/jquery-ui-1.8.14.custom.min.js").wait()
.script("/assets/js/effects.js").wait(function(){});
</script>

その他の注意事項:

  1. その最後の空/noop .wait() 関数を削除します。(もう) 必要ありません。
  2. modernizr は LABjs によってロードされるべきではありません... ドキュメント<script>の上部にある通常のタグにある必要があると IIRC が言うドキュメントに従ってロードする必要があります。
  3. 私の推測では.wait()、このチェーンにある の一部は不要です。たとえば、「jquery-slider」と「jquery-watermark」のscript()呼び出し後は必要ないと思います。これらは相互に依存していないため、相互に任意の ASAP 順序で実行できるに違いないためです。 jQuery が終了した後に実行することを確認している限り (これが、呼び出しに追加するためにスニペットにコメントを作成した理由.wait()です! )
于 2012-05-27T19:19:57.250 に答える