未捕获的TypeError:对象#<svganimatedstring>在d3.js和jquery UI mobile中没有方法'indexOf',当试图显示弹出窗口时</svganimatedstring>

时间:2013-03-09 09:53:43

标签: jquery-mobile d3.js

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

未捕获的TypeError:对象#没有方法'indexOf'

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

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

我尝试使用谷歌搜索,但似乎修复了错误(?) - https://github.com/mbostock/d3/issues/78

我错过了什么吗?我该怎么做才能解决这个问题?

谢谢!

1 个答案:

答案 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;
});

希望这会有所帮助......