4

次の jQuery スクリプトがありますが、実際には Internet Explorer (7 および 8) によって無視されています。FFとChromeで問題なく動作します。

<script type="text/javascript" language="javascript">
    $("body").addClass("newclass");
</script>

これは非常に単純ですが、IE がそれを無視する理由がわかりません。コードは、JAVA を使用して動的コンテンツとして読み込まれることに注意してください (残りのスクリプトは機能するため、これは問題になりません)。外部ファイルの関数としてスクリプトを呼び出そうとしましたが、何も起こりません。私のエラーがどこにあるかを理解するのを手伝ってくれる人はいますか? またはIEを理解するのに役立ちますか?

4

3 に答える 3

7

または、おそらくドキュメントの「準備完了」イベントの方が良いでしょう

$(document).ready(function() {
  $('body').addClass('newclass');
});
于 2011-01-05T13:06:48.050 に答える
0

これが問題だった場合、FirefoxとChromeでも問題が発生すると確信していますが、試してみてください

$(function () {
    $('body').addClass('newclass');
});

ドキュメントがロードされた後に呼び出されることを確認するためだけに。たぶんIEはそれを必要としています。

于 2011-01-05T13:04:12.963 に答える
0

で包む$(document).ready(function(){ ... });

このように、JQuery はページが完全にロードされた場合にのみ実行します。

これを行わないと、DOM がロードされる前にコードが実行される可能性があるため、クラスを追加する body 要素がない可能性があります。

機能するブラウザーと機能しないブラウザーがあるという事実は、ブラウザーが異なれば、(a) ページの読み込み速度が異なること、および/または (b) 初期読み込みタスクを異なる順序で実行することを意味します。しかし、それについて心配する必要はありません。呼び出すだけ$.ready()で、すべてが JQuery によって適切な順序で実行されます。

于 2011-01-05T13:07:39.317 に答える