1
我試圖分離我的代碼,以便於維護,我做錯了什麼。 在d3中有一個約定,您可以簡單地將部分分配給一個變量。我試圖用下面的代碼做到這一點,但我得到'mypaths.attr不是函數錯誤'。這是什麼造成的?d3.js mypaths不是函數
/代碼/
var svgContainer = d3.select("body").append("svg")
.attr("width", svgWidth)
.attr("height", svgHeight)
.attr("viewBox", svgViewBox)
.attr("preserveAspectRatio", "xMinYMin meet")
.call(d3.zoom().on("zoom", function() {
svgContainer.attr("transform", d3.event.transform)
}))
.append("g");
var mypaths = d3.json("myJSONURL.com", function(err,data) {
if(err) console.log(err);
svgContainer.selectAll("path")
.data(data)
.enter()
.append("path");
});
var styles = mypaths
.attr("id", function (d) { return d.id; })
.attr("d", function (d) { return d.d; })
.style("fill", "#FFFFFF")
.style("stroke", "#1C1C1C")
.style("stroke-width", "3px")
.style("stroke-linecap", "round")
.on("mouseover", handleMouseOver)
.on("mouseout", handleMouseOut)
.on("click", handlePathClick);
我想是從屬性分離出來的數據線。我能夠在這種情況下:var circles = svgContainer.selectAll(「circle」) .data(jsonCircles) .enter() .append(「circle」); (「cy」,function(d){return d.y_axis;}) .attr(「cx」,function(d){return d.x_axis;})函數(d){return d.radius;}) .style(「fill」,function(d){return d.color;}); – Tf11