0
circle
是四個d3
圓陣列。訪問當前在D3功能屬性
circle
.attr("cy", function(){ this.attr("cy") + 10*input_data.pitch });
失敗。我如何訪問上面的匿名函數中的單個屬性?
circle
是四個d3
圓陣列。訪問當前在D3功能屬性
circle
.attr("cy", function(){ this.attr("cy") + 10*input_data.pitch });
失敗。我如何訪問上面的匿名函數中的單個屬性?
在你的功能裏,this
是一個Element每W3C DOM API。所以這只是this.getAttribute("cy")
。
兩兩件事:你忘了return
的值。由於屬性值是字符串,因此在添加另一個數字之前,您需要強制它們輸入數字。否則你的號碼將被強制轉換爲一個字符串,然後這兩個字符串將被並置:"10" + 2
是"102"
,而不是12
。
所以,像這樣:
circle.attr("cy", function() {
return +this.getAttribute("cy") + 10 * input_data.pitch;
});
所有這一切說,它一般不地道D3拉回來的數據進行的DOM屬性。 (由於DOM屬性只能是字符串,因此速度很慢並且存在強制性和序列化問題。)因此,我建議您尋找一種基於數據的方法,並將自己限制爲數據驅動的文檔...而不是文檔驅動的數據!
欣賞的意見,謝謝BDFL! –