我的网站上有一个'a'链接,在我的页面中附加了一个jQuery函数。这个链接的'href'是'#',因为页面不需要为我的jQuery重新加载。但是,无论何时单击链接,它都会再次转到页面顶部。这很烦人,因为链接相当远,所以你必须再次找到你的阅读位置。有办法......
答案 0 :(得分:1)
href="#"
表示"链接到页面顶部",所以你一定要找一些东西而不是它。
链接去了地方,你不想去任何地方,所以你不应该使用链接。
改为使用按钮。
<button type="button">Label</button>
这假设你绝对不能使用progressive enhancement,这样如果JavaScript失败(which it will),那么加载新页面将得到相同的最终结果(尽管效率较低)。
如果你可以使用渐进增强功能,那么你应该使用一个有用的链接:
<a href="/handle/it/on/the/server">Label</a>
然后阻止默认操作:
jQuery("a").on("click", handler);
function handler(event) {
doSomethingWithJS();
event.preventDefault();
}
答案 1 :(得分:0)
作为@ Quentin答案的替代方案,如果 使用链接,因为你想“去某个地方”,而不是重新加载/新页面,请使用语义片段标识符:
body { font-size: 28px; } /* for testing */
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>
<p><a href="#my-section">My section</a></p>