2

$(function () {...})前提条件のプラグインスクリプトが読み込まれる前にハンドラーが起動されているように見えるため、JSエラーが発生します。IEでのみ発生します(IE7でのテスト)。

私の中には<head>次のようなHTMLがあります。

<script type="text/javascript" src="../resources/org.wicketstuff.jwicket.JQuery/jquery-1.4.2-special.js"></script>
...
<script type="text/javascript" id="noConflict"><!--/*--><![CDATA[/*><!--*/
jQuery.noConflict();
/*-->]]>*/</script>
...
<script type="text/javascript" src="../resources/com.csc.aims.wicket.components.collapsiblefieldset.CollapsibleFieldsetBehavior/jquery.collapsiblefieldset.js"></script>
<link rel="stylesheet" type="text/css" href="../resources/com.csc.aims.wicket.components.collapsiblefieldset.CollapsibleFieldsetBehavior/jquery.collapsiblefieldset.css" />
<script type="text/javascript">
jQuery(function(){
jQuery('#collapse119').collapse({"iconClosedUrl":"../resources/img/white_plus","iconOpenUrl":"../resources/img/white_minus"});
});
</script>

したがって、HTMLコードによると、シーケンスは次のようになっていることに注意してください。

  1. jquery-1.4.2-special.js
  2. jQuery.noConflict()呼び出し
  3. jquery.collapsiblefieldset.js //$.fn.collapseを定義します
  4. jQuery('#collapse119')。collapse(...)が呼び出されます

このコードがFFで実行されると、すべてが正常に機能します。IE7(または互換性のあるビューを備えたIE8:IE7標準モード)でテストすると、javascriptエラーが発生します。デバッガーは、jQuery.fn.collapseが未定義であることを示しています。

IE8開発ツールを使用して、jquery.collapsiblefieldset.jsを調べてみます。リストにスクリプトが表示されますが、スクリプトがロードされていないため、ブレークポイントを設定できないとツールから通知されます。

$()readyハンドラーを実行する前にcollapsiblefieldset.jsが読み込まれないのはなぜですか?任意の洞察をいただければ幸いです!ありがとう。

4

3 に答える 3

4

使用しています

$(function(){...});

これはの同義語です

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

代わりに、あなたは試すかもしれません

$(window).load( function(){...} );

これは、ページの読み込みシーケンスの後半で発生します。

于 2010-06-05T02:33:28.580 に答える
1

</body>すべてのスクリプトをページの下部、タグの直前に配置します。

それでも問題が解決しない場合は、時間内に読み込まれていないように見えるスクリプトをに戻し<head>、残りのスクリプトを下部に残します。

于 2010-06-05T00:40:07.833 に答える
0

この問題に苦しんでいる他の人にとっては、jQueryへの複数の参照がないことを再確認する価値があるかもしれません。ヘッドでプラグインが定義されている場合、プラグインは本体の2番目のjQuery呼び出しによってオーバーライドされます。

于 2014-07-07T22:03:57.957 に答える