我遇到了一个有趣的错误(?),如果您使用 <use> 作为链接的一部分(例如图标)嵌入 SVG – 图标本身不会在 jQuery 中注册单击事件,但单击文本会。我认为这是由于 SVG 事件没有冒泡?
如果您直接嵌入 SVG,无论您单击文本还是图标,链接都会触发。
我创建的一个简单的测试用例可以在这里看到: SVG <use> bug test case。
我遇到了一个有趣的错误(?),如果您使用 <use> 作为链接的一部分(例如图标)嵌入 SVG – 图标本身不会在 jQuery 中注册单击事件,但单击文本会。我认为这是由于 SVG 事件没有冒泡?
如果您直接嵌入 SVG,无论您单击文本还是图标,链接都会触发。
我创建的一个简单的测试用例可以在这里看到: SVG <use> bug test case。
pointer-events: none;
在 svg 上使用。它对我有用。
元素永远不是鼠标事件的目标;但是,如果这些后代将指针事件设置为其他值,则鼠标事件可能会针对其后代元素。在这些情况下,鼠标事件将在事件捕获/冒泡阶段期间适当地触发此父元素上的事件侦听器。
https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events
我有同样的问题。我使用的修复方法是在 svg 上放置一个透明的 div。但这当然不理想。
我遇到了同样的问题,我在链接上使用了display: block
ordisplay: inline-block
并且它有效。