こんにちは、私は現在、Json のビルドされた D3 要求を使用して一連の json データを呼び出しています。私が抱えている現在の問題は、そのリクエスト内のデータの配列をインデックス化しようとすることです。現時点では、配列の最初の x & y しか取得できません。したがって、新しいオブジェクトをドラッグするたびに、マウスがクリックされた前の位置にジャンプして戻るため、D3 ドラッグに影響します。ここにスニペットがあります:
d3.json("url/path", function(data) {
var drag = d3.behavior.drag()
.origin(Object)
.on("drag", function(d,i) {
data.locations[0].x += d3.event.dx;
data.locations[0].y += d3.event.dy;
d3.select(this).attr("transform", "translate("+data.locations[0].x+","+data.locations[0].y+")")
});
.attr("transform", function(d,i) {return "translate("+data.locations[0].x+","+data.locations[0].y+")" ;})
});
ただし、場所のデータ全体にインデックスを付けようとすると、たとえば
"translate("+data[i].locations[0].x+","+data[i].locations[0].y+")"
「Uncaught TypeError: 未定義のプロパティ 'locations' を読み取れません」というエラーが表示されます
私の現在のjsonデータは次のように構成されています:
{
"section":"a",
"room":"b",
"locations":[
{
"x":0,
"y":0
},
{
"x":0,
"y":0
},
{
"x":0,
"y":0
},
{
"x":0,
"y":0
},
{
"x":0,
"y":0
},
{
"x":0,
"y":0
}
]
}
したがって、私のクエリは、ネストされたデータをどのようにインデックス化するかです。そのため、x & y 値を 1 つだけではなくすべて読み取り、ドラッグ動作に影響を与えます。
助けていただければ幸いです。
ありがとう