2010-10-28 46 views
1

我试图实现这个tutorial.我又找到了口鱼菜单中的“对象预期”从样本JavaScript错误:预期的对象错误执行的jQuery口鱼菜单

$(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。

UPDATE 菜单的开始:

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

(我觉得#NAV-一个指向菜单中的 “导航一体” 的ID)。

而且我相信这个CSS覆盖“sfHover”部分:当您不包括jQuery的正确,就可能出现

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

回答

1

的“对象预期”的错误。你在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> 

将从谷歌的服务器请求的jQuery。

编辑:

如果我用你的示例代码和jQuery的包括我上面提到的,我没有得到这个错误。但你也需要包括

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

部分从你的榜样。该定义将hoverClass定义为jQuery方法(它不是该标准jQuery库的一部分)。

+0

这摆脱了对象预期的错误。菜单起作用,但不像教程。该教程有一个很好的淡入淡出效果,不起作用。我没有收到任何错误,而且我仍然执行了您在上面看到的代码。由于在这一点上没有错误,所以我越来越茫然,那么我以前就是这样。此外,即使webform.aspx和Scripts文件夹位于同一父目录中,但使用“../Scripts/jquery.js”工作而不是“〜/ Scripts/jquery.js”。请注意,您所包含的额外代码也在我的代码中。 – 2010-10-28 13:57:36

+0

我从教程下载了jquery.js文件,淡入淡出开始工作。我认为这个文件只是jquery的输入,但显然不是。这只是一大堆乱七八糟的功能,但它的工作原理是这样的... – 2010-10-28 14:10:21

+0

@ P.Brian.Mackey - 是的,我的工作方式必须与你的(没有很好的淡入淡出)相同,直到我包括所有样式在示例页面上。它看起来像css处理菜单项的显示/隐藏(和课程的样式),所以你需要在你的页面上。 – rosscj2533 2010-10-28 14:11:47