Javascript 为什么当href=";时页面会向上滚动#&引用;点击了吗?
我有一个类似于Javascript 为什么当href=";时页面会向上滚动#&引用;点击了吗?,javascript,html,ajax,Javascript,Html,Ajax,我有一个类似于的超链接,我必须向下滚动页面才能找到它。此超链接仅用于触发Ajax请求。当我点击这个超链接时,页面会一直滚动到顶部!我怎样才能解决这个问题?我使用#,因为其他任何东西都会重新加载页面。我用错了吗 编辑: 我很难解释我在做什么,如果你运行这个,你会遇到和我一样的问题。即使在返回false之后 <html> <head> </head> <body> <a href="#" id="li
的超链接,我必须向下滚动页面才能找到它。此超链接仅用于触发Ajax请求。当我点击这个超链接时,页面会一直滚动到顶部!我怎样才能解决这个问题?我使用#
,因为其他任何东西都会重新加载页面。我用错了吗
编辑:
我很难解释我在做什么,如果你运行这个,你会遇到和我一样的问题。即使在返回false之后
<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>
document.getElementById(“link”).onmousedown=function(){
this.style.color=“red”;
返回false;
}
添加一个返回false代码>分配给事件处理程序:
el.onclick = function() {
// do your code
return false;
}
或者更优雅的方式
function(e) {
e = e || window.event;
if ( e.preventDefault ) e.preventDefault()
else e.returnValue = false;
}
您需要在单击锚定标记时停止事件传播。必须尝试javascript:void(0)
代替#
资料来源:
编辑:
原因:
它防止浏览器刷新或导航到其他页面
浏览器正试图移动到名为#
的锚点。没有,所以它会滚动到最上面。为了避免这种行为,请按照meder提到的方法进行操作。浏览器将#作为锚,您的页面顶部有一个id为“someID”的链接,或者根本没有id,在这种情况下,默认情况下,它只会进入页面顶部(这似乎是您的情况)。你必须用某种东西来代替#标志来阻止这种情况。我不确定什么是最好的,但埃文·穆拉夫斯基的答案可能会奏效。我不知道这是否仍能让ajax代码正常运行 我没有投反对票,但你读过投票最多的答案吗?应该是鼠标向下还是点击?您是否可以显示所有相关代码,包括Obj
reference。使用正确的Doctype 2。您必须将脚本
元素放在文档的标题
或正文
中。