我正在我的网页上运行一些JavaScript。每当它捕获附加到锚<a>
元素并执行处理程序(我使用jQuery附加)的事件时,滚动位置将重置回页面顶部。有解决方案吗?
答案 0 :(得分:6)
如果您将<a>
属性保留为href
,则处理#
代码的点击时会出现您提及的滚动内容。这是因为浏览器在事件链的末尾执行默认操作(这是因为所谓的event bubbling)
要解决此问题,您必须阻止浏览器对Click事件的默认处理,这可以通过不同的方式完成:
href='#'
替换为href='javascript:void(0)'
false
。答案 1 :(得分:5)
一个原因可能是您有指向“#”的链接,并且您有绑定到这些链接的事件。解决方案是在事件函数结束时执行return false;
:
<a href="#" id="foo">Test</a>
在jQuery中:
$('#foo').click(function() {
/* do stuff */
return false;
});
答案 2 :(得分:0)
我认为您的意思是每当您回发到服务器时,页面都会滚动到顶部 如果那不是你的意思,请澄清。
要解决此问题,您可以使用Javascript发送$(window).scrollTop()
以及回发,然后编写发出更多Javascript的服务器端代码,以便在获得参数时向下滚动。
如果您需要更具体的解决方案,请提供更多详细信息。