【问题标题】:How to stop event propagation on onclick event in html attribute?如何在 html 属性中停止 onclick 事件的事件传播?
【发布时间】:2016-07-25 13:43:43
【问题描述】:

我有一个带有 onclick 属性的 html 元素,我需要防止该事件冒泡。我试过这样做:

<div onclick="event.stopPropagation();">

还有这个:

<div onclick="(function(event){event.stopPropagation();})();)">

但两者都不起作用。我绝对需要在 html onclick 属性中执行此操作,因为此 div 是 Razor 局部视图的一部分,并且脚本设置在 ViewData 字典中。如何在 html onclick 属性上调用 event.stopPropagation()?

编辑:这种情况下的错误是事件为空。所以由于某种原因,我无法访问这样的活动。

【问题讨论】:

标签: javascript html


【解决方案1】:

使用Eventevent.stopPropagation 方法。您的第二个代码 sn-p 中有一个错误,您没有将 event 传递给匿名函数。固定代码:

&lt;div onclick="(function(e) { e.preventDefault(); e.stopPropagation(); })(event)"&gt;

【讨论】:

  • @LambdaNinja 已修复
  • 原来我没有通过这个活动!谢谢!
  • @Magnus:你说你的第一个例子也不起作用。如果这不起作用,将立即调用的函数包装在它周围不会改变任何东西。包装函数在这里完全没有意义。
  • @squint 这是真的——实际上我对匿名函数的工作原理非常感兴趣,而对event 的直接引用却没有。
猜你喜欢
  • 2017-03-15
  • 2014-09-29
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2014-05-06
  • 1970-01-01
相关资源
最近更新 更多