2016-08-10 92 views
0

我試圖捕獲在SVG元素上觸發的事件(在這種情況下是rect)。但是,event不被識別&我得到控制檯錯誤:ReferenceError: event is not definedSVG中的事件捕獲

我在HTML元素&上調用了相同的函數,它工作正常。有什麼理由不對SVG元素起作用:

下面是代碼:

<g class="piece filled" transform="translate(120, 0)"> 
    <!-- the following 'event' within 'playerMove' gives error --> 
    <rect width="120" height="120" data-tile="1" onclick="playerMove(event)"/> 
</g> 

的Javascript:

const playerMove = function(e){ 
    console.log(e); 
    let eTarget = e.target; 
}  

編輯: 按照註釋,這似乎是一個Firefox的問題,有什麼解決方法嗎?它似乎在Chrome中工作。感謝jessh的提示。

+0

這段代碼是在孤立的環境中工作 - http://codepen.io/jshawl/pen/XKogQa – jessh

+0

我只是試圖在FF&太沒有按沒有工作。然後我想他一定是使用Chrome,嘗試了它,是的它確實有用!所以,這是FF。任何解決方案 – Kayote

+0

@RobertLongson沒辦法!你在現場。然而,同樣的'evt'作爲參數傳遞並不適用於FF中的HTML元素。在那裏,「事件」似乎很好。你知道這是爲什麼嗎? – Kayote

回答

1

更改事件EVT產生這樣的:

<rect width="120" height="120" data-tile="1" onclick="playerMove(evt)"/> 
+0

謝謝,這是有效的!但是,作爲參數傳遞的相同'evt'不適用於FF中的HTML元素。在那裏,'事件'似乎工作正常。你知道這是爲什麼嗎? – Kayote

+1

不同的規格,不同的規則。 –

+0

你可以在' – dandavis