【发布时间】:2016-08-10 23:52:11
【问题描述】:
我正在尝试捕获在 SVG 元素上触发的事件(在本例中为矩形)。但是,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 的提示。
【问题讨论】:
-
此代码在隔离环境中工作 - codepen.io/jshawl/pen/XKogQa
-
我刚刚在 FF 中尝试过,它也不起作用。然后我想他一定是在使用 Chrome,试过了,是的,它确实有效!所以,是FF。有什么解决办法吗?
-
@RobertLongson 不可能!你很准。但是,作为参数传递的相同 'evt' 不适用于 FF 中的
HTML元素。在那里,event似乎工作正常。你知道这是为什么吗? -
不同的规格,不同的规则。有一次尝试标准化,但它破坏了太多现有内容。
标签: javascript events svg dom-events