我有像这样的HTML代码
<svg style="display:block">
</svg>
问题是svg元素无法捕获鼠标事件。 其他显示属性,如“内联块”,......会产生相同的效果。 使用“内联”属性,它可以捕获鼠标事件。 我想知道为什么以及如何解决它。 试试这个以便于理解
<!DOCTYPE html>
<html>
<body onmousedown="alert('body')">
<svg style="display:block" width="300" height="300" onmousedown="alert('svg1')"></svg>
<svg width="300" height="300" onmousedown="alert('svg2')"></svg>
</body>
</html>
答案 0 :(得分:1)
由于Chromium中存在错误,Chrome和Opera只会出现这种情况:https://code.google.com/p/chromium/issues/detail?id=379299(如果您检查其他浏览器,例如Firefox,您会发现它确实按预期工作。)
修复has been committed to the master branch,并且应该会在几个月内(2014年夏天结束)在这些浏览器的稳定版本中使用。
与此同时,您可以通过将<svg>
包装在display: block
容器元素中来解决此问题(具体取决于您的使用案例)。