-2

这是我开始的,

   $("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;
        });

但这对我来说不起作用。

4

1 回答 1

4

问题在于您的 HTML,而不是您的 JavaScript。id在 HTML 中包含两个具有相同属性的元素是无效的。jQuery(实际上是底层的 JavaScript)只会在使用 ID 选择器时选择这些元素中的第一个#top,因此选择<a>. 您的选择器li#top更具限制性,但如果您颠倒元素顺序,您可以看到类似的效果:http: //jsfiddle.net/WRmPz/10/

出于这个和许多其他原因,您的所有元素都必须具有唯一的 ID。

By the way, the return false is not necessary for the <li>, (nor would it be necessary for <a> without href). If you were to use the latter, it would be better to pass in the event object and call e.preventDefault(): http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

于 2012-12-28T23:00:54.460 回答