javascript - SVG 上的单击事件在 Safari 中不起作用

标签 javascript svg safari

SVG 路径上的单击事件在 Safari 中不起作用。还尝试了 mousedown 相同的结果。

SVG 示例:

<svg xmlns="http://www.w3.org/2000/svg" id="map" viewBox="0 0 800 579" enable-background="new 0 0 800 579" preserveAspectRatio="xMidYMin slice" style="width: 100%; padding-bottom: 72%; height: 1px; overflow: visible">
  <path id="co" fill="#D3D3D3" d="M378.6,256.8l1.4-21.3l-32.1-3.1l-24.5-2.7l-37.3-4.1l-20.7-2.5l-2.6,22.2l-3.2,22.4l-3.8,28 l-1.5,11.1l-0.3,2.8l33.9,3.8l37.7,4.3l32,3.2l16.6,0.8"></path>
</svg>

脚本:

document.querySelector("#co").addEventListener('click', function(){
    alert(this);
});

https://jsfiddle.net/bxzbpwgj/11/

有什么建议吗?

最佳答案

Height 1px is preventing your click event to trigger in safari. Safari do not trigger events for overflow elements in Svg.

Solution: Remove height:1px

document.querySelector("#co").addEventListener('click', function(){
    alert(this);
});
<svg xmlns="http://www.w3.org/2000/svg" id="map" viewBox="0 0 800 579" enable-background="new 0 0 800 579" preserveAspectRatio="xMidYMin slice" style="width: 100%; overflow: visible">
  <path id="co" fill="#D3D3D3" d="M378.6,256.8l1.4-21.3l-32.1-3.1l-24.5-2.7l-37.3-4.1l-20.7-2.5l-2.6,22.2l-3.2,22.4l-3.8,28 l-1.5,11.1l-0.3,2.8l33.9,3.8l37.7,4.3l32,3.2l16.6,0.8"></path>
</svg>

关于javascript - SVG 上的单击事件在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42938270/

相关文章:

javascript - 如何在测试之间重置 redux-test-utils 存储

javascript - 交互式 donut 网络图表

svg - 我如何 <embed> svg 并像 img 一样缩放它

javascript - Safari BlobUrl 30mb 限制

php - 阻止 Safari 缓存热门站点

javascript - 为什么我的 https 来源没有使用 navigator Geolocation 服务的权限?

javascript - 如何将生成的元素插入数组并在 React 中渲染它们

javascript - 在同步回调中​​使用 dust.js(异步)

javascript - 关于AJAX,需要点击提交按钮两次

pdf - Phantomjs zoomFactor - 将光栅化缩放到特定大小