1

メニューのhtmlの後に配置されている場合にのみ機能するJQueryベースのタブナビゲーションがあります。最後に配置しても機能しますが、同じスクリプトを $(document).ready の一番上に配置すると壊れます。

私はこれを考えました(ページの上部に配置):

<script type="text/javascript">
$(document).ready(function(){
    mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
});
</script>

これと同じです:

    <script type="text/javascript">
        mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
    </script>
</html>

これはページの下部に配置され、機能します。関数を一番上に配置したり、別のファイルから含めたりするにはどうすればよいですか?

4

2 に答える 2

1

私はこの問題を抱えていて、jquery インクルード リンクの後にこれを頭の中で使用していました。

$(document).ready(myfunction());

オブジェクトがロードされていないため、これは失敗しました。呼び出しを関数でラップする必要がありました。

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

これは、ドキュメントが適切にロードされた後にのみ、期待どおりに機能しました。

于 2013-08-13T10:35:57.947 に答える
0

スクリプトをページの最後に配置することをお勧めする理由は、アクセスする前に HTML 要素がページに読み込まれるようにするためです。

コードを配置する場所に関係なく、ページ内の要素にアクセスする前に、完全な HTML ドキュメントが適切に読み込まれるようにする DOM Ready イベントでラップすることをお勧めします。

多分あなたの場合

 <script type="text/javascript">
        mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
    </script>

DOM Ready に包まれていない場合は機能しているようです DOM Ready によってスコープがブロックされているため、関数にアクセスできません

于 2012-09-27T05:38:06.590 に答える