我有一个HTML,其中包含带有对象标记的嵌入式SVG。我在全局文档上注册了mousemove的事件监听器,但是当嵌入式SVG文档内的元素上发生鼠标移动时,不会调用在mousemove的全局文档上注册的回调。似乎嵌入是这里的问题,但无法弄清楚问题是什么,我认为SVG文档是全球文档的子项,全局文档应该得到所有事件。有人可以帮忙吗?全局文档和SVG文档没有关系吗?
答案 0 :(得分:0)
我尝试了以下内容:
<div style="position:relative; background-color:red; height:300px">
<object data="http://upload.wikimedia.org/wikipedia/commons/c/c7/SVG.svg" type="image/svg+xml" height="300" width="400" style="position:absolute;z-index:1;"
onclick="console.log('clickSVG');"
onmousemove="console.log('moveSVG');"
></object>
<div style="height:150px; background-color:blue; z-index:2;"
onclick="console.log('clickDIV');"
onmousemove="console.log('moveDIV');"></div>
</div>
认为在对象上方分层的div可以捕获事件,但事实并非如此。我真的不知道为什么;可能值得尝试完全在JS中创建SVG对象并直接附加处理程序。
编辑:为挖掘旧帖子道歉,我意识到有点晚了;我希望这对任何人都有帮助。