2016-07-25 83 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