滚动到顶部没有href ...?

时间:2012-12-28 22:47:43

标签: jquery

这是我最初的开始,

   $("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 :(得分:4)

问题在于您的HTML,而不是您的JavaScript。 HTML中的两个元素具有相同的id属性是无效的。 jQuery(实际上是底层JavaScript)只会在使用ID选择器时选择这些元素的 first ,因此#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/