2016-01-22 27 views
1

我有一組圓定義爲爲什麼我的座標只能在我的圓定義內部定義?

nodes = [{ 
     x: xRange(xvalue), 
     y: yRange(getY(xvalue)), 
     ... 
}] 

vis.selectAll(".nodes") 
    .data(nodes) 
    .enter().append("circle") 
    .attr("class", "nodes") 
    .attr("cx", function (d) { 
     return d.x; 

     (coordinate display) 
    }) 
    .attr("cy", function (d) { 
     return d.y; 
    }) 
    .attr("r", "7px") 
    .attr("fill", "black") 
    .attr("transform", function (p) { 
     return "translate(" + p.x + "," + p.y + ")"; 
    }) 

,我與這些圈子有是,當被定義的圈子裏,儘管被定義在其他地方從nodes採取的座標是不明確的問題。 Here是一個測試用例來表示這個問題,其中一個點的座標應該顯示,但不是,因爲它似乎是未定義的。爲了證明這些軸的工作原理,我在圖的第一個象限中放了一個點。有什麼理由爲什麼會發生這種情況?

+4

這不是不確定的,但你'從功能return'代碼之前,多數民衆贊成顯示的值,以便它從未執行過。 https://jsfiddle.net/qzbhLe0d/10/ – JJJ

+2

請注意,如果值*爲*未定義,並且打印它們的代碼將運行,則會在控制檯和HTML中看到「未定義」。 – JJJ

回答

1

你返回你運行邏輯之前:

.attr("cx", function (d) { 
     return d.x; 
     (coordinate display) 
    }) 

變化:

.attr("cx", function (d) { 
      (coordinate display) 
      return d.x; 
     }) 
相關問題