您好我正在使用针对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值而不仅仅是一个&影响我的拖动行为。
非常感谢帮助。
感谢
答案 0 :(得分:0)
找到解决方案。很简单!不知道为什么我之前没有想到它!
"translate("+data.locations[i].x+","+data.locations[i].y+")"\
我相信就是这样。如果有人有其他解决方案,我愿意听。