【问题标题】:How to stop the jump when clicking on an anchor link? [duplicate]单击锚链接时如何停止跳转? [复制]
【发布时间】:2012-01-31 11:34:10
【问题描述】:

点击锚链接时有没有办法避免跳转?这样视图就不会改变。

【问题讨论】:

  • 你能给我们看一个“跳跃”代码的例子吗?
  • 如果你不想改变视图,为什么要有锚链接?请清除它。
  • 我知道这已经很老了,但是回答@JoeriHendrickx 有时这不是一个选择。例如,我进行 A/B 拆分测试,这需要在加载后对客户端页面进行修改。我无法编辑他们的原始代码,但必须更改行为以通过数据确定是否应该完成。此问题 100% 有效。

标签: html tags click anchor


【解决方案1】:

解决这个问题最语义化和最有意义的方法是在 JavaScript 中处理 onclick 事件。理想情况下,最好将此文件存储在一个单独的文件中,但是,在问题文件中包含一个内联脚本就足够了。如果您已经在使用像 jQuery 这样的 JavaScript 库,我建议您使用以下方法来解决这个问题。

分配一个 ID
在锚点中包含一个 id 属性,以便可以使用 jQuery 选择它:

<a href="#anchor" id="mylink" title="Title Here">Link Text</a>

绑定点击事件
在您的 JavaScript 文件/内联脚本中包含以下内容:

$('#mylink').click(function(event) {

    // This will prevent the default action of the anchor
    event.preventDefault();

    // Failing the above, you could use this, however the above is recommended
    return false;

});

以上方法使用jQuery API网站完整解释:http://api.jquery.com/event.preventDefault/

【讨论】:

  • 有时您希望禁用跳转并执行所有其他默认行为,例如在不重新加载页面的情况下将#anchor 附加到该位置。 event.preventDefault() 单独不起作用。
【解决方案2】:

只需使用:

<a href="javascript:void(0);">Text</a>

【讨论】:

【解决方案3】:

您可以使用 Javascript 来阻止链接的默认行为,一个简单的例子是:

<a href="#myanchor" onclick="return false;">link</a>

【讨论】:

  • 当我使用你的 sn-p 时,带有 id 的 div 的位置不会改变
  • 我标记了这个因为内联 js 是一场噩梦——在我看来
  • 显然它在停止跳跃的同时也阻止了事件的发生
猜你喜欢
  • 2019-02-01
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
相关资源
最近更新 更多