我有一个超级链接<a href="#" id="someID">Link</a>
,我必须向下滚动页面才能到达。此超链接仅用于触发Ajax请求。当我点击这个超链接时,页面一直滚动到顶部!我怎样才能解决这个问题?我使用#
因为其他任何东西都会重新加载页面。我使用它错了吗?
我很难解释正在做什么,如果你这样做,你会得到我面临的同样问题。即使在返回虚假之后。
<html>
<head>
</head>
<body>
<a href="#" id="link" style="position:absolute; top:200%;">Link</a>
</body>
</html>
<script type="text/javascript">
document.getElementById("link").onmousedown = function(){
this.style.color="red";
return false;
}
</script>
答案 0 :(得分:7)
将return false;
添加到指定的事件处理程序:
el.onclick = function() {
// do your code
return false;
}
或者可以说更优雅的方式
function(e) {
e = e || window.event;
if ( e.preventDefault ) e.preventDefault()
else e.returnValue = false;
}
答案 1 :(得分:6)
必须尝试javascript:void(0)
代替#
?
来源:
Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?
修改强>
原因:
它可以阻止浏览器刷新或导航到其他页面。
答案 2 :(得分:4)
浏览器正在尝试移动到名为#
的锚点。没有任何东西它滚动到最顶端。为了避免这种行为,请按照提及的方式进行。
答案 3 :(得分:1)
单击锚标记时需要停止事件传播。
答案 4 :(得分:0)
浏览器正在读取#作为锚点,你以太网有一个id为&#34; someID&#34;在您的页面顶部或根本没有ID,在这种情况下,默认情况下它将只是到页面的顶部(这似乎是你的情况)。您必须将#符号替换为停止此操作。我不确定什么是最好的,但Evan Mulawski的回答可能有效。我不知道这是否仍然允许你的ajax代码正常运行。