javascript d3可视化不';在单击HTML输入之前,不要加载/显示

javascript d3可视化不';在单击HTML输入之前,不要加载/显示,javascript,jquery,html,d3.js,Javascript,Jquery,Html,D3.js,我有一个d3应用程序与一个HTML数字输入。目前,一切都按照我所希望的方式运行,只是在我实际单击数字输入的上下键之前,浏览器中不会显示可视化效果 我尝试使用以下值设置输入: <input type="number" min="0" max="100" step="1" value="5" id="nMinutes"> 无济于事 我举这个例子: 这是小提琴: 注意:我在实际应用中使用的是d3.csv: var dataset2 d3.csv("/assets/csv/myda

我有一个d3应用程序与一个HTML数字输入。目前,一切都按照我所希望的方式运行,只是在我实际单击数字输入的上下键之前,浏览器中不会显示可视化效果

我尝试使用以下值设置输入:

<input type="number" min="0" max="100" step="1" value="5" id="nMinutes">
无济于事

我举这个例子:

这是小提琴: 注意:我在实际应用中使用的是d3.csv:

var dataset2
    d3.csv("/assets/csv/mydata.csv", function(d) {
    dataset2=d;
})

这是我第一次尝试D3(以及javascript),因此欢迎并感谢所有关于该应用程序的一般建议(并非100%针对发布的问题)。

可视化似乎是在输入时初始化的

d3.select("#nMinutes").on("input", function () {
    d3.select("svg").remove();
    buildhist(dataset2, +this.value);
});
因此,只有单击箭头,代码才会绘制图形。如果你要说:

buildhist(dataset2, 1);

在JavaScript文件的末尾,它应该按照您的预期工作。

因此我过度简化了小提琴示例,但从jstkim7的答案中认识到了问题所在。我在查看此帖子后找到了解决方案:

我必须在
d3.csv
函数中包含
buildhist(dataset2,5)
。像这样:

var数据集2=
d3.csv(“/assets/csv/cleanTrips.csv”),函数(d){
数据集2=d;
buildhist(数据集2,5);

});

这绝对适用于小提琴,事实证明,我对小提琴简化得太多了。在阅读了这篇文章之后,我找到了解决方案:我必须在
d3.csv
函数中包含
buildhist(dataset2,5)
。类似这样:
var dataset2=d3.csv(“/assets/csv/cleanTrips.csv”,函数(d){dataset2=d;buildhist(dataset2,5);})
buildhist(dataset2, 1);