-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 回答