0

こんにちは、私は現在、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 つだけではなくすべて読み取り、ドラッグ動作に影響を与えます。

助けていただければ幸いです。

ありがとう

4

1 に答える 1