这是我最初的开始,
$("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;
});
但它不适合我。
答案 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/