HTML超链接停留在同一位置

时间:2012-11-01 16:09:53

标签: jquery html

我有以下链接:

    <a id="readmore" href="#">READ MORE</a>

当用户点击此超链接时,我使用Jquery切换此链接下方的内容以显示/隐藏内容。我对href =“#”的一个问题是它将用户带到页面顶部。相反,我希望它保持在同一位置,以便我可以在READ MORE超链接下方显示信息的切换效果。是否有一个解决方案可以工作,对大多数浏览者来说都是安全的。我试过href =“”但是没有做到这一点。

我也尝试了

    <a id="readmore"href="javascript:void(0)"> READ MORE</a>

但不确定这是否是最佳做法。

6 个答案:

答案 0 :(得分:6)

您可以使用

$('#readmore').click(function(e) {
  e.preventDefault();
});

preventDefault()会停止元素的默认行为,所以在这种情况下,它会停止屏幕跳跃。

详细了解here

答案 1 :(得分:1)

一个非常知道的问题是使用javascript:void(0)而不是#

答案 2 :(得分:0)

确保使用e.preventDefault(); (假设您的事件变量是e)或者只是在点击方法结束时返回false

答案 3 :(得分:0)

你也可以使用老派风格......

<a id="readmore" href="javascript:void(0);">Read More</a>

UDPATE

OP修改了他的帖子,包括“最佳实践”......就这样......

Unobtrusive Javascript

答案 4 :(得分:0)

在您的代码中,您需要传递一个事件变量并调用preventDefault来阻止锚标记的默认操作。

$('#readmore').click(function(e) {
    $('div').toggle();
    e.preventDefault();
}

答案 5 :(得分:0)

您也可以使用nohref="nohref"代替href="#"

href="#anchor"带您进入已定义<a></a>的页面上的name="anchor"元素

因为你还没有..它到了顶部