对象实现jquery suckerFish菜单的预期错误

时间:2010-10-28 13:30:18

标签: asp.net jquery

我正在尝试实现此tutorial.上的suckerfish菜单我从示例javascript中得到“对象预期”错误:

    $(document).ready(function () {
        $("#nav-one li").hover(
            function () { $("ul", this).fadeIn("fast"); },
            function () { }
        );
        if (document.all) {
            $("#nav-one li").hoverClass("sfHover");
        }
    });

我使用以下方法导入了JQuery:

<script type="text/javascript" src="~/Scripts/jquery-1.4.1.js"></script>

JQuery导入位于页眉中。 javascript就在<body>内。 如果我可以告诉哪个对象有问题而不是指向这个代码块,那将是很好的。我是JQuery和初级javascript的新手。

更新 菜单的开头:

<ul id="nav-one" class="nav">
            <li>
                <a href="#item1">item 1</a>
                <ul>

(我认为#nav-one指向菜单“nav-one”的ID。)

我相信这个css涵盖了“sfHover”部分:

#nav-one li.sfHover a {
  background: #ccc;
  color: #000;
}

1 个答案:

答案 0 :(得分:1)

当您未正确包含jQuery时,可能会发生“对象预期”错误。你在src属性指向的目录中有'jquery-1.4.1.js'文件吗?

要测试这是否是问题,请尝试用以下内容替换您的jQuery:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>

这将从Google的服务器请求jQuery。

编辑:

如果我使用你的示例代码和上面提到的jQuery包含,我没有得到那个错误。但是你还需要包含

$.fn.hoverClass = function(c) {
return this.each(function(){
    $(this).hover( 
        function() { $(this).addClass(c);  },
        function() { $(this).removeClass(c); }
    );
});
};

部分来自你的例子。它将hoverClass定义为jQuery方法(它不是标准jQuery库的一部分)。