這裏有一個很棒的d3極點時鐘示例 - http://bl.ocks.org/mbostock/1096355。d3 bl.ocks polar clock ex問題
如果有人願意花時間解釋他們,我有幾個問題關於發生了什麼。
1.
d3.transition().duration(0).each(tick);
從文檔這實質上是相當於
d3.select(document).transition().duration(0).each(tick)
所以應此最初控制文檔的過渡中,以查看?我試着給持續時間賦值> 0,它的行爲就像是延遲而不是動畫。我已經嘗試在tick fn中添加一些內容來控制動畫元素以查看,但它似乎決不會動畫。一個與僅僅調用tick()不同的工作示例會很有用。
2.
function tick() {
field = field
.each(function(d) { this._value = d.value; })
.data(fields)
.each(function(d) { d.previousValue = this._value; });
這可能更有意義,如果我的理解1.然而較好的主要方面,我不明白的是如何「這個」正在使用。 d.value正被複制到this._value。 '這'是HTML DOM元素?我試過一個console.log(這個)直接在這行代碼下面,它沒有顯示任何_value屬性。 對這裏發生了什麼的解釋將不勝感激。這與d之間的根本區別尤其在於。
*「您無法在控制檯中看到該內容,因爲打印的表達式在打印時並未進行評估,而是在展開時進行評估。」*這是不正確的。我已經在FF,IE11和Chrome的控制檯中檢查了這種行爲。所有這些都是在印刷時評估表達。因此,你可以使用'console.log(this.hasOwnProperty(「_ value」))'檢查是否存在,或者使用'console.log(this._value)'輸出值。 – altocumulus
聽起來好像OP在記錄'this'並在稍後擴展它。 –
完美,謝謝拉爾斯。 – hwilson1