2016-07-25 86 views
3

我有一个带有onclick属性的html元素,我需要防止该事件冒泡。我试着这样做:如何停止html属性中onclick事件的事件传播?

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

这:

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

但无论是作品。我绝对需要在html onclick属性中这样做,因为这个div是Razor局部视图的一部分,脚本在ViewData字典上设置。如何在html onclick属性上调用event.stopPropagation()?

编辑:在这种情况下的错误是该事件为空。所以出于某种原因,我不能像这样访问这个事件。

+0

我不知道Razor或ViewData字典;但你可以不链接到一个函数来做到这一点? –

+2

[如何使用内联onclick属性停止事件传播?](http://stackoverflow.com/questions/387736/how-to-stop-event-propagation-with-inline-onclick-attribute) – Liam

+0

事件可能重复。 stopPropagation();应该工作。你有没有尝试过把它变成内联onclick事件? MDN参考 - https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation –

回答

4

使用event.stopPropagation方法Event。您的第二个代码段中存在错误,您不会将event传递给匿名函数。固定代码:

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

+3

这不会阻止传播... –

+0

@LambdaNinja固定 –

+0

事实证明,我没有通过事件!谢谢! – Magnus