2016-09-26 124 views
7

我试图将onClick事件添加到现有的svg。现在,我有这样的:将onClick事件添加到具有反应的组元素(svg)

<g id="Group" onClick={this.clickGroup.bind(this, 1)}> 

其中有些作品,但不完全...该事件触发,当我点击组,但“区域”,即点击是不一样的,因为我想要的组可点击(这对我来说完全是随机的)。

有没有更好的方法将事件添加到<g>元素(使用React?)?

回答

10

A g元素只是一个空容器;它不能自行发射事件。

如果运行this example,你会看到,你可以通过点击g元素的儿童触发click事件,但你可以,如果你在他们之间的空白区域单击不行。

您必须使用实际形状来触发SVG中的事件。

+0

感谢您的帮助。这是否意味着最好的解决方案是将所有形成一个形状的路径封装在矩形内? – Clafou

+4

您可以在形状上添加一个透明矩形,并在其上附加一个事件。如果有人有更优雅的解决方案,会很高兴看到它。 –

相关问题