0

私はこのjsfiddleを使用しています。バーにカーソルを合わせると、最初はすべてのツールチップが正しく表示されます。しかし、週表示ボタンをクリックしてグラフを変更しても、ツールチップが更新されません。

問題はこのセクションにあると思います:

layer.enter()
    .append("g")
    .attr("class", "layer");

layer.attr("fill", function (d, i) {
    return color(i);
    })
.append("svg:title")
.text(function(d){  
    return d[0].s;
});

layer.exit()
    .remove();

追加テキストは、ツールチップを追加する場所です。開始と終了でバーが更新されるため、ツールチップが更新されると思いましたが、正しく実行されていません。

グラフが変更されたときにツールチップを更新するにはどうすればよいですか?

4

1 に答える 1

4

<title>これは、バーが変わるたびに新しい要素を追加しているためです。追加は、Enter 選択で 1 回実行してから、更新選択でタイトルの値を更新するだけです。

これは、いくつかのコメントがインラインで含まれているコードの修正版です (ツール ヒントに関係のない部分は削除しました)。

layer.enter()
    .append("g")
    .attr("class", "layer")
        .append("title");  // add new element under new layer

// add or update the value of the title element
layer.select("title").text(function(d) {  
    return d[0].s;
});
于 2014-01-30T20:42:42.607 に答える