我正在尝试实现此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;
}
答案 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库的一部分)。