2016-08-10 4 views
0

私はSVG要素(この場合はrect)で発生したイベントをキャプチャしようとしています。ただし、eventは認識されません。&コンソールエラー:ReferenceError: event is not definedが表示されます。SVGのイベントキャプチャ

私は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; 
}  

EDIT:ここ

がコードでコメントを1として 、それはFirefoxの問題のように見える、これまでの任意の回避策はありますか?それはChromeで動作しているようです。ヒントのために jesshに感謝します。 EVTへ

+0

を - http://codepen.io/jshawl/pen/XKogQa – jessh

+0

私はFFでそれを試してみました&それはあまりにもdoesnの仕事はありません。それから私は彼がChromeを使用しているに違いないと思った、それを試して&はいそれは動作します!だからFFです。どんな解決策ですか? – Kayote

+0

@RobertLongsonどうやら!あなたはスポットにいます。しかし、FFの 'HTML'要素に対しては、同じ 'evt'が引数として渡されません。そこでは、「イベント」はうまくいくようです。なぜこれが知っていますか? – Kayote

答えて

1

変更イベントがこれを生成するために:このコードは隔離された環境で作業している

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

ありがとうございました!しかし、同じ「evt」は引数として渡され、FFのHTML要素では機能しません。そこでは、 'イベント'は正常に動作するようです。なぜこれが知っていますか? – Kayote

+1

異なる仕様、異なるルール。 –

+0

あなたは両方で 'arguments [0]'を渡すことができます... – dandavis