d3.js:单击时更改 x 轴间隔
d3.js: Change x-axis interval on click
我有一对轴,它们几乎按照我想要的方式工作,但有一个小的、特殊的错误。
我已经将图形配置为根据选择的这些导航药丸之一来更改 x 轴间隔,它这样做,但它需要单击两次才能呈现更改。
你可以在这里看到一个稍微工作的例子:http://jsfiddle.net/zreqz/3/
基本上,这个问题的实质在于 JavaScript 底部的代码:
$("li").on("click", function () {
$("#chart").empty();
renderGraph();
});
所以步骤是:
- 单击其中一个药丸
- 从 DOM 中清除图形
重新渲染图形并确定哪个药丸处于活动状态,在此基础上形成 x 轴域:
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();
});
http://jsfiddle.net/zreqz/5/
相关文章:
- js - 单击时交换图像
- 动态.js单击画布外的按钮时从画布中删除图像
- 使用音频.js单击按钮下载音频
- 使用 D3.js 单击圆圈时生成阴影
- 挖空 JS - 单击数组中的图像
- JS单击事件不适用于暂停CSS动画
- d3.js单击时交替颜色,单击另一个点时变回原始颜色
- 在淘汰赛中更改 css 类.js单击鼠标
- 在 vis 中访问节点数据.js单击处理程序
- 使用 Meteor.js 单击时将类添加到特定元素
- 高图表 js 单击旋转并展开弧线
- 添加新图表.js单击按钮时,但得到“无法读取空的属性'getContext'”
- 三.js 单击时获取相对于此值的对象(对象都在数组中)
- d3.js:单击时更改 x 轴间隔
- 使用 d3.js 单击时分解饼图
- 使用角度JS单击时更改目标的属性
- d3.js单击时更改数据(圆环图的多个实例)
- 挖空.js单击按钮后使用数据创建新记录
- Knockout.js单击时更改(而不是切换)css类
- Js.单击以编程方式添加的事件,但在加载代码时仅触发一次