我没有使用 d3 也有同样的问题。我只使用纯 SVG 并使用 angularJS 控制器将其附加到 DOM 中。问题不在 d3 中。您可以通过在包含链接的元素上将 return false 值添加到 jQuery click 事件处理程序中来解决此问题。
我的 SVG 的一部分:
<g id="1" class="node">
<a xlink:title="title">
<polygon fill="#cccccc" stroke="#cccccc" points="25,-434 25,-457 98,-457 98,-434 25,-434"></polygon>
<polygon fill="none" stroke="black" points="25,-434 25,-457 98,-457 98,-434 25,-434"></polygon>
<text text-anchor="start" x="29.5" y="-442.3" font-family="Arial" font-size="14.00">title</text>
<polygon fill="transparent" stroke="black" points="25,-412 25,-434 98,-434 98,-412 25,-412"></polygon>
<text text-anchor="start" x="37" y="-419.8" font-family="Arial" font-size="14.00">title</text>
</a>
</g>
jQuery重载方法:
$('g.node').click(function (element) {
return false;
});
希望这可以帮助...