Add onClick event to a group element (svg) with react

寵の児 提交于 2019-12-18 14:15:48

问题


I'm trying to add an onClick event to an existing svg. Right now I have this :

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

Which somewhat works but not entirely... The event fires when I click the group but the "zone" that is clickable isn't the same as the group I want to be clickable (it seems completely random to me).

Is there any better way to add events to a <g>element (with React ?) ?


回答1:


A g element is just an empty container; it can not fire events by itself.

If you run this example, you'll see that you can trigger the click event by clicking on the children of the g element, but you can't if you click in the empty space between them.

You have to use actual shapes to fire events in SVG.




回答2:


Use style pointer-events as bounding-box to make the group clickable any where on the group.Even at the empty places

<g id="Group" onClick={this.clickGroup.bind(this, 1)} style="pointer-events: bounding-box;">


来源:https://stackoverflow.com/questions/39706869/add-onclick-event-to-a-group-element-svg-with-react

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!