1

力指向グラフを使用してモバイルアプリケーションでd3チャートを作成しようとしています。ここで、ノードはタッチ時にポップアップを表示する必要があります。ただし、ノードをクリックすると、次のエラーが発生します-

Uncaught TypeError:オブジェクト#にはメソッド'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にはありません。この問題は、リンクを含む要素の 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;
});

お役に立てれば...

于 2013-07-10T13:31:22.933 に答える