我正在尝试捕获在SVG元素上触发的事件(在这种情况下为rect)。但是,无法识别event,并且出现控制台错误:


  ReferenceError:事件未定义。


我在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的提示。

最佳答案

将事件更改为evt以产生此结果:

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

关于javascript - SVG中的事件捕获,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38885289/

10-12 23:34