Javascript d3.js:单击更改x轴间隔
我有一对轴,几乎按照我想要的方式工作,但是有一个小的,特别的错误 我已经将图形配置为根据选择的导航丸之一更改x轴间隔,它会这样做,但需要单击两次才能渲染更改 您可以在此处看到一个稍微起作用的示例: 基本上,这个问题的核心在于JavaScript底部的代码:Javascript d3.js:单击更改x轴间隔,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我有一对轴,几乎按照我想要的方式工作,但是有一个小的,特别的错误 我已经将图形配置为根据选择的导航丸之一更改x轴间隔,它会这样做,但需要单击两次才能渲染更改 您可以在此处看到一个稍微起作用的示例: 基本上,这个问题的核心在于JavaScript底部的代码: $("li").on("click", function () { $("#chart").empty(); renderGraph(); }); 因此,这些步骤是: 单击其中一个药丸 从DOM中清除图形 重新渲染图形并确定
$("li").on("click", function () {
$("#chart").empty();
renderGraph();
});
因此,这些步骤是:
getIntervalType = function () {
if ($("#hours").hasClass("active")) {
return startTimeHour;
} else if ($("#days").hasClass("active")) {
return startTimeDay;
} else if ($("#months").hasClass("active")) {
return startTimeMonth;
}
};
提前感谢。单击元素的类在您定义的回调完成之前不会更新,也就是说,在已经调用renderGraph()之后 手动设置类可避免此问题:
d3.selectAll('li').on('click', function(){
d3.selectAll('.active').classed('active', false);
d3.select(this).classed('active', true);
d3.select('#chart').select('svg').remove();
renderGraph();
});
小提琴似乎不起作用。图表是硬编码的,d3代码位于一个名为“graphFunction”的函数中,该函数似乎在任何地方都没有被调用。@ScottCameron,很抱歉,我的复制和粘贴错误。现在应该更新并开始工作了。嘿,谢谢!这很有效。在看到这个之前,我实际上想出了另一个可行的解决方案。如果您感兴趣: