1

我正在尝试在具有强制导向图的移动应用程序中构建 d3 图表,其中节点应在触摸时显示弹出窗口。但是,在单击节点时,我收到以下错误 -

未捕获的类型错误:对象 # 没有方法 'indexOf'

我已经在 codepen 上重新创建了这个问题 -

http://codepen.io/madhug/pen/gdiKr

我尝试为此进行谷歌搜索,但似乎该错误已修复(?) - https://github.com/mbostock/d3/issues/78

我错过了什么吗?我应该寻找什么来解决这个问题?

谢谢!

4

1 回答 1

1

这是同样的问题:SvgAnimatedString missing method indexOf

我没有使用 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;
});

希望这可以帮助...

于 2013-07-10T13:31:22.933 回答