2012-12-28 37 views
-2

這裏是我開始了,滾動到頂部沒有href ...?

$("a[href='#top']").click(function() { 
     $("html, body").animate({ scrollTop: 0 }, "slow"); 
    return false; 
    }); 

<a href="#top">...</a> 

但是偉大工程,我需要類似的東西,如果沒有一個鏈接的作品,像...

<li id="top">....</li> 

我試過

$("#top").click(function() { 
      $("html, body").animate({ scrollTop: 0 }, "slow"); 
      return false; 
     }); 

但它不起作用。

+1

定義「不起作用」。你進行了哪些調試? –

+0

適合我,你可以做一個jsfiddle嗎? –

+0

是的,[這jsfiddle](http://jsfiddle.net/mz5HG/1/)顯示你的代碼應該工作。 –

回答

4

問題出在你的HTML而不是你的JavaScript。在您的HTML中有兩個具有相同id屬性的元素是無效的。當使用ID選擇器時,jQuery(實際上是底層JavaScript)將僅選擇這些元素的第一個,因此#top選擇<a>li#top的選擇更具限制性,但如果反轉元素順序,則可以看到類似的效果:http://jsfiddle.net/WRmPz/10/

由於此原因和其他原因,所有元素都必須具有唯一ID,這一點非常重要。

順便說一句,return false不是必要的<li>,(也不需要<a>沒有href)。如果要使用後者,最好傳遞事件對象並呼叫e.preventDefault()http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

+0

非常感謝,非常有用和有用的信息。 – Richard