javascript - 事件不在 use 标签内触发

标签 javascript html svg

我一直在尝试在 svg 标记中使用 use 标记。它看起来相对简单,我有一个在 JSFiddle 中工作的基本示例:https://jsfiddle.net/cneLLLqu/

单击红色方 block (在 defsuse 标记之外)会出现一个消息框。单击绿色方 block 不会触发任何单击事件。我不明白为什么事件会与红色方 block 一起触发,但不会与绿色方 block 一起触发。检查元素一切看起来都很好。

我目前使用的是 Opera 42。

最佳答案

你想做的事情是不可能的。来自 SVG 1.1 规范:

The effect of a ‘use’ element is as if the contents of the referenced element were deeply cloned into a separate non-exposed DOM tree which had the ‘use’ element as its parent and all of the ‘use’ element's ancestors as its higher-level ancestors. Because the cloned DOM tree is non-exposed, the SVG Document Object Model (DOM) only contains the ‘use’ element and its attributes. The SVG DOM does not show the referenced element's contents as children of ‘use’ element.

关于javascript - 事件不在 use 标签内触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192590/

相关文章:

javascript - Ajax 返回的 html 似乎无法识别适用于它的 javascript 函数

css - Webkit Animation 在其下方打破 SVG

javascript - 在可拖动点与控制点之间绘制曲线以调整曲线 SVG 和 d3.js

css - 制作一个真正 flex 的容器,里面有图像

javascript - 使用 appenChild 添加 div 并使用 removeChild 减少 div

javascript - 不确定为什么 .css() 不会改变 div 质量

javascript - 使用 Javascript 获取 XML 文件中节点内的节点

javascript - 使用 jquery、javascript 的外部系统 slider

html - 在 Django 中发送 HTML 电子邮件

javascript - Ember CLI 生成的单元测试因存在而失败