3

我想知道是否有人知道如何在链接提交时页面不动,即

<a href="#"></a>

如果它是 2 页长度,它会冲到顶部。

4

6 回答 6

3

如果您通过 jQuery 将事件附加到 HTML 控件,那么您可以使用return false类似

$("#myDiv").delegate("tr", "click", function() {    
     enter code here
     return false;
});
于 2012-11-27T10:20:25.270 回答
2

正如您对问题的回答所述,无需更换锚点。

这也可以:

<a href="#" onclick="yourOwnSubmitFunction(); return false;">

简而言之,只要确保 onClick 处理程序中的任何函数都返回 boolean false

于 2009-09-28T10:26:44.690 回答
2

虽然拥有链接的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 不能完全重新设置按钮的样式。您将在此浏览器中获得一些不可移除的额外填充像素。

于 2009-09-28T10:35:07.623 回答
0

如果您使用的是 .net 2.0

有一个

维护ScrollPositionOnPostback

@page 指令中的属性,您可以使用它来维护页面的滚动位置。

获取或设置一个值,该值指示是否在回发后将用户返回到客户端浏览器中的相同位置。此属性替换过时的 SmartNavigation 属性。

当 Web 页面回传到服务器时,用户将返回到页面顶部。在长网页上,这意味着用户必须将页面滚动回页面上的最后一个位置。

当 MaintainScrollPositionOnPostback()()() 属性设置为 true 时,用户将返回到页面上的最后一个位置。

如果您不能使用它,则在提交后将 location.href 设置为指定位置的锚标记。

location.href = "#anchAtPos";

其中 anchAtPos 是指定位置的锚标签的 id。

于 2009-09-28T09:02:55.977 回答
0

我以前通过放置来解决这个问题

onclick='return false;'

链接里面

<a href="#" onclick='return false;' id='attachAlistenertothisID'>This link doesn't jump to the top!</a>

我将它用于我的链接,这些链接通过 jQuery 附加了点击侦听器。

希望这对某人有帮助!

于 2011-06-21T22:19:59.570 回答
0

我使用以下方法解决了这个问题:

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();
    });
}
于 2009-09-28T10:23:26.570 回答