【问题标题】:JavaScript not cancelling action of my linkJavaScript 没有取消我的链接的操作
【发布时间】:2014-03-06 00:56:14
【问题描述】:

我正在处理一项任务,我必须创建一个链接以将用户带到新网页,但说明告诉我使用 javascript,以便当用户单击链接时弹出警报窗口up 说“停止”并取消链接的操作。我当前的 javascript 显示警报消息,但如果用户单击“确定”,链接仍然有效。任何人都知道如何使链接无法正常工作?我为下面的链接添加了我的 javascript 和我的 html:

JS:

<script type="text/javascript">
    function stop_link(node)
    {
        return alert("Stop That!");
    }
</script>

HTML 链接:

<a href="index.html" onclick="return stop_link(this);">Do Not Click Here!</a>

【问题讨论】:

标签: javascript html


【解决方案1】:

您应该从事件处理程序中返回false 以停止事件传播。

alert() 不返回false,实际上它不返回任何东西,这意味着它返回的内容是隐含的undefinedundefined !== false

function stop_link(node) {
    alert("Stop That!");
    return false;
}

【讨论】:

  • 如果您使用上述代码显式返回 false,则不应该。
  • 我认为问题在于在内联处理程序中使用return stop_link(this);,它实质上返回了一个新函数,它完成了它的工作,但不会阻止默认行为的发生。
  • 哦等等。对不起。我在 alert() 之前离开了“return”;即使在我添加了“return false;”之后在它下面。一旦我删除了第一个退货,它就解决了我的问题。谢谢!
  • @AndreiNemes - return stop_link(this); 不返回新函数。它返回 stop_link(this) 返回的内容 - 根据 OP 的原始代码未定义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2022-11-21
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 2011-07-08
相关资源
最近更新 更多