开始选择是div容器元素。
function chart(selection)
{
createSVGCanvas(selection)// <---- Works
//selection.call(createSVGCanvas) // <---- Doesn't Work
.call(calculateScales)
.call(dataLayer)
return this;
}
function createSVGCanvas(selection)
{
//This properly returns an svg element, but in the broken version
// the NEXT .call'd function (calculateScales), has a selection of the
// div#svg_canvas, NOT the svg.
return selection.append("svg")
.attr("width", config.width)
.attr("height", config.height);
}
在我看来,当前选择是div(或者不是svg元素)时,d3的.call函数似乎将错误的元素传递给下一个.call函数。
我绝对可以使用工作版本,但破坏的版本看起来更像是d3编码风格。
关于为什么下一个.Call函数正在接收div而不是svg?
的任何解释答案 0 :(得分:1)