2010-10-28 25 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