-1

本文で機能する関数がonload=""ありますが、ページの他の要素の前にロードする必要があり、ヘッダーにドキュメント準備機能を追加しようとしていますが、機能していないようです。

f1menu() {
    $('.menuH').hover(
        function() {
            $('.menuC').stop().animate({width: '90px'},333)
        }, 
        function() {
            $('.menuC').stop().animate({width: '-0'}, 333)
        }
    );
}

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

したがって、onload機能する関数は次のとおりです。

onload="$('.menuH').hover(function() {$('.menuC').stop().animate({width: '90px'}, 333)}, function() {$('.menuC').stop().animate({width: '-0'}, 333)});"
4

2 に答える 2

3

OPが質問を変更する前に、次の回答が提供されたことに注意してください。

あなたは書くべきです:

  function f1menu(){}

いいえ、

  f1menu(){}

さらに、ドキュメントの準備ができたときに呼び出す関数を jQuery に直接渡すだけで、document.ready コードを簡素化できます。

$(function() {
     $('.menuH').hover(
         function() {
            $('.menuC').stop().animate({width: '90px'}, 333);
         }, 
         function() {
            $('.menuC').stop().animate({width: '-0'}, 333);
         }
     );
});

アップデート:

OPが質問を修正した後、解決策(ちなみに推奨されるアプローチではありません)は、スクリプトをページの本文に挿入するだけですが、関数が参照する要素の後に、次のようになります。

 <body>

     <!-- elements that the code references must come before the code -->
     <script>
        // .menuH and .menuC elements must have already been loaded into DOM
        $('.menuH').hover(
           function() {
               $('.menuC').stop().animate({width: '90px'},333)
           }, 
           function() {
               $('.menuC').stop().animate({width: '-0'}, 333)
           }
        );
     </script>

     <!-- Rest of HTML -->
 </body>
于 2016-03-09T16:44:56.250 に答える
-1

f1menu関数として宣言していないため、関数であることがわかりません。これを試して:

function f1menu(){ //logic
}

于 2016-03-09T16:50:22.650 に答える