1

JQuery.load を使用すると、他の JavaScript ライブラリが壊れます。次のエラーが表示されます。

TypeError: $.doTimeout is not a function

jQuery.load を使用しない場合、正常に動作します。

これが起こる原因がわかりません。ソース コードに既にレンダリングされている JavaScript ファイルから関数を見つけることができなかったようです。

スクリプト

<script type="text/javascript" src="/assets/js/modernizr-1.7.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery.tmpl.js"></script>
<script type="text/javascript" src="/assets/js/jquery.ba-dotimeout.js"></script>
<script type="text/javascript" src="/assets/js/test1.js"></script>
<script type="text/javascript" src="/assets/js/test2.js"></script>

test1.js の内部

$.doTimeout("hoverOut");

test2.js の内部

$(".test").load("/test.aspx?param=" + someValue);

jquery.ba-dotimeout.js はライブラリです

test1.js はそのライブラリを使用して、凝った処理を行います

助けてください

4

2 に答える 2

1

この問題は、私が 1 週間苦労した問題と非常によく似ています(今では解決しました :) )

実際、2 つの .js ライブラリを含める場合は、同じ関数の定義が含まれていないことを確認する必要があります。

これが起こる原因がわかりません。ソース コードに既にレンダリングされている JavaScript ファイルから関数を見つけることができなかったようです。

をオーバーライドすると、同じ問題が発生する可能性があります。

于 2013-07-17T17:41:30.983 に答える
0

test.aspx を含めると、既存のバージョンをオーバーライドする jQuery.js の別のコピーが含まれているように見えるため、プラグインが失われます (以前のバージョンにはありましたが、テストによって追加されたものにはありませんでした)。 .aspx)。

jquery.js を test.asmx から削除するか、セレクターを .load に追加して結果をフィルタリングします。

$(".test").load("/test.aspx?param=" + someValue + " #targetdivtoload");
于 2013-07-17T17:48:57.543 に答える