我正在尝试使用强制定向图在移动应用程序中构建d3图表,其中节点应该在触摸时显示弹出窗口。 但是,在单击节点时,我收到以下错误 -
未捕获的TypeError:对象#没有方法'indexOf'
我在codepen上重新创建了这个问题 -
http://codepen.io/madhug/pen/gdiKr
我尝试使用谷歌搜索,但似乎修复了错误(?) - https://github.com/mbostock/d3/issues/78
我错过了什么吗?我该怎么做才能解决这个问题?
谢谢!
答案 0 :(得分:1)
这是同样的问题:SvgAnimatedString missing method indexOf
我没有使用d3也有同样的问题。我只使用纯SVG并使用angularJS控制器将其附加到DOM中。问题不在d3中。您可以通过在包含链接的元素上的jQuery单击事件处理程序中添加return false值来解决此问题。
我的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;
});
希望这会有所帮助......