SVG click events not firing/bubbling when using <use> element

Deadly 提交于 2019-12-18 11:41:11

问题


I have come across an interesting bug (?) whereby if you embed the SVG using <use> as part of a link (an icon for example) – the icon itself does not register a click event in jQuery, but clicking the text does. I think this is due to SVG events not bubbling up?

If you embed the SVG directly, the link triggers regardless of whether you click the text or the icon.

A simple test case I created can be seen here: SVG <use> bug test case.


回答1:


Use pointer-events: none; on the svg. It worked for me.

The element is never the target of mouse events; however, mouse events may target its descendant elements if those descendants have pointer-events set to some other value. In these circumstances, mouse events will trigger event listeners on this parent element as appropriate on their way to/from the descendant during the event capture/bubble phases.

https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events




回答2:


I had the same problem. The fix I use is to just put a transparent div over the svg. But that is not ideal of course.




回答3:


I had the same problem and I used display: block or display: inline-block on the link and it worked.



来源:https://stackoverflow.com/questions/24078524/svg-click-events-not-firing-bubbling-when-using-use-element

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