【问题标题】:Prevent link from opening by returning false - not working (javascript)通过返回 false 防止链接打开 - 不工作(javascript)
【发布时间】:2016-06-29 20:13:17
【问题描述】:

这应该是一个简单的,但我一直没能找到答案

我有一个触发功能的链接。

<a href="someplace.html" onclick="myfunction()"</a>

如果我想阻止链接打开,我需要函数返回 false,对吗?

function myfunction() {
  // some code
  return false;
}

但是,这不起作用。我可能在这里遗漏了一些重要的东西,但请帮帮我。

为什么这不起作用: http://codepen.io/lukastillmann/pen/aNmZbx?editors=1010

【问题讨论】:

  • onclick="return myfunction()" 可以解决问题

标签: javascript function hyperlink


【解决方案1】:

您必须从事件处理函数中返回 false

您的事件处理函数:

  1. 调用 myfunction()
  2. ……就是这样,它没有返回语句。

myfunction 有一个 return 语句,但它不是事件处理函数。它是从事件处理函数调用的另一个函数。

onclick="return myfunction()"

现代代码不会使用 onclick 属性,而 have horrible gotchas 并违反 several best practices

function myfunction(e) {
  // some code
  e.preventDefault();
}

document.querySelector("a").addEventListener("click", myfunction);

【讨论】:

  • 我不知道关于onclick 的问题。
  • 另外值得注意的是,如果 JavaScript 函数中存在未捕获的错误,它将有效地通过并跳转到链接。
  • "return myfunction()" 可以解决问题。谢谢!我实际上曾尝试使用事件侦听器和 e.preventDefault: codepen.io/lukastillmann/pen/oxzrVL?editors=1010 但这仍然不起作用。有什么想法吗?
  • @lukastillmann — preventDefault 是一个函数。您必须调用它,而不仅仅是提及它。你丢失了()
  • 感谢@Quentin 和大家。不知何故,这让我疯了好几天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 2018-10-17
相关资源
最近更新 更多