我想知道是否有人知道如何在链接提交时页面不动,即
<a href="#"></a>
如果它是 2 页长度,它会冲到顶部。
如果您通过 jQuery 将事件附加到 HTML 控件,那么您可以使用return false
类似
$("#myDiv").delegate("tr", "click", function() {
enter code here
return false;
});
正如您对问题的回答所述,无需更换锚点。
这也可以:
<a href="#" onclick="yourOwnSubmitFunction(); return false;">
简而言之,只要确保 onClick 处理程序中的任何函数都返回 boolean false
。
虽然拥有链接的onclick
处理程序return false;
是阻止链接被跟踪的正确方法,但以这种方式使用链接有点麻烦,因为你得到的是一个动作而不是一个链接。您不能对链接执行通常的类似链接的操作,例如右键单击书签或中键单击新选项卡等,因此它不应该真正具有这种可供性。
另一种选择(例如 SO 使用)是将 onclick 放在非链接元素上,例如:
<span id="potato">Do something</span>
<script type="text/javascript">
document.getElementById('potato').onclick= function() {
// do something
};
</script>
这更干净,但有一个缺点是链接不能通过通常的键盘选项卡方法来聚焦和激活。
可以说更好的是使用<input type="button">
or <button type="button">
,这是表示动作的正确标记。当然,这些看起来完全不同,但是如果您愿意,您可以使用 CSS 来设置样式,使它们看起来像一个链接而不是一个按钮。这种方法的一个缺点是旧的愚蠢的 IE 不能完全重新设置按钮的样式。您将在此浏览器中获得一些不可移除的额外填充像素。
如果您使用的是 .net 2.0
有一个
@page 指令中的属性,您可以使用它来维护页面的滚动位置。
获取或设置一个值,该值指示是否在回发后将用户返回到客户端浏览器中的相同位置。此属性替换过时的 SmartNavigation 属性。
当 Web 页面回传到服务器时,用户将返回到页面顶部。在长网页上,这意味着用户必须将页面滚动回页面上的最后一个位置。
当 MaintainScrollPositionOnPostback()()() 属性设置为 true 时,用户将返回到页面上的最后一个位置。
如果您不能使用它,则在提交后将 location.href 设置为指定位置的锚标记。
location.href = "#anchAtPos";
其中 anchAtPos 是指定位置的锚标签的 id。
我以前通过放置来解决这个问题
onclick='return false;'
链接里面
<a href="#" onclick='return false;' id='attachAlistenertothisID'>This link doesn't jump to the top!</a>
我将它用于我的链接,这些链接通过 jQuery 附加了点击侦听器。
希望这对某人有帮助!
我使用以下方法解决了这个问题:
function anchorReplace()
{
$("#reportWrapper a").each(function(i){
var anchorElement = $(this);
var newAnchorElement = $('<a href="#link' + i + '" name="#link' + i + '">'
+ anchorElement.text() + '</a>').insertBefore(anchorElement);
anchorElement.remove();
});
}