2013-04-30 34 views
0

您好我目前正在調用一組json數據使用Json的內置D3請求。我遇到的當前問題是試圖通過請求中的數據數組進行索引。目前我只能得到我陣列的第一個x &。因此,它會影響我的D3拖動,因爲每當我拖動一個新對象時,它就會跳回到之前鼠標點擊的位置。這裏有一個片段:試圖通過D3的X和Y值陣列索引

 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+")" 

我收到錯誤「遺漏的類型錯誤:無法讀取的未定義的屬性‘位置’」

我現在的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 
    } 
    ] 
} 

所以我的查詢是怎麼做的我通過我的嵌套數據索引,所以它讀取所有的y值,而不是隻影響我的拖動行爲的一個&。

幫助將不勝感激。

謝謝

回答

0

找到了解決辦法。非常簡單!不知道爲什麼我沒有想到它!

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

我相信是的。如果有人有另一種解決方案,我願意傾聽。