2012-12-28 40 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