试图通过一系列X& D3 Drag的Y值

时间:2013-04-30 14:41:40

标签: javascript json indexing d3.js

您好我正在使用针对Json的内置D3请求调用一组json数据。我当前遇到的问题是尝试索引该请求中的数据数组。目前我只能得到第一个x&我的阵列因此,它会影响我的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:无法读取未定义的属性'位置”

我当前的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 个答案:

答案 0 :(得分:0)

找到解决方案。很简单!不知道为什么我之前没有想到它!

 "translate("+data.locations[i].x+","+data.locations[i].y+")"\

我相信就是这样。如果有人有其他解决方案,我愿意听。