2

我有一个 SVG(目标)元素,其中包含几个 SVG(死者)元素,这个容器 SVG 位于页面中的 SVG(根)深处。我看到的问题是,如果我在 SVG(目标)上注册了一个事件,则只有在单击 SVG(死者)之一时才会触发该事件,就好像 SVG(目标)没有边界框一样。除了用 100% x 100% 的透明矩形填充 SVG(目标)之外,我还有哪些选择?

4

1 回答 1

0

为什么不使用某种不同的方法分配事件。将属性分配给元素。例如:-

让我们说下面是你的svg: -

<svg ... >

 <g id='container' data-action='selection'>
 <g id='child1' data-action='selection'>
</g>

 <g id='child2' data-action='selection'>
</g>


</g>

</svg>

现在在代码中,在文档上绑定事件。

document.addEventListener('mousedown',useraction,false);

function useraction(event){

if(event.target.hasAttribute('data-action')){
  var action=event.target.getAttribute('data-action');

   if(action==='selection'){
   //call your selection function to perform action.
   }
 }

}
于 2013-07-12T23:08:11.810 回答