2016-09-26 125 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

您可以在形狀上添加一個透明矩形,並在其上附加一個事件。如果有人有更優雅的解決方案,會很高興看到它。 –

相關問題