私の d3js アプリでは、ユーザーが特定の円にカーソルを合わせると、円が拡大されます。それは問題ありません。同時に、「その他すべて」を選択して小さくしたい。「他のすべての円」を取得するための適切なクエリは何ですか?
質問する
2780 次
1 に答える
4
必要に応じて、selection.filterまたは一般的に使用されるselection.selectのあまり知られていない機能形式を使用できます。
推奨される方法であるkey functionsを使用して DOM 要素をデータにバインドする場合、選択のキーでフィルター処理できます: http://jsfiddle.net/9TmXs/
.on('click', function (d) {
// The clicked element returns to its original size
d3.select(this).transition() // ...
var circles = d3.selectAll('svg circle');
// All other elements resize randomly.
circles.filter(function (x) { return d.id != x.id; })
.transition() // ...
});
別の一般的なアプローチは、DOM 要素自体を比較することです: http://jsfiddle.net/FDt8S/
.on('click', function (d) {
// The clicked element returns to its original size
d3.select(this).transition() // ..
var self = this;
var circles = d3.selectAll('svg circle');
// All other elements resize randomly.
circles.filter(function (x) { return self != this; })
.transition()
// ...
});
于 2013-02-23T00:20:39.137 に答える