高图表:将点添加到图表,然后删除,然后再次添加.然后重复
Highcharts: Add point to chart, then remove, then add it again... then repeat
我正在使用Highcharts API,并且正在使用列范围图表来表示事件计划。纵轴表示事件 ID,横轴表示时间。
- 用户应该能够通过单击图表来添加单个事件。 添加
- 后,用户应该能够单击新添加的事件将其删除。
- 删除后,用户应该能够再次单击图表以在其他位置重新添加新事件。
在大多数情况下,这一切都工作正常 - 参见JS小提琴演示
在演示中,首先单击图表以添加红色条。然后单击红色条将其删除。这完全是它应该工作的样子。问题是,如果您在删除红色条后尝试再次添加红色条,则垂直轴上的类别会增加。
如何添加一个点,然后删除它,然后再次添加它,而不在垂直轴上"重新生成"额外的类别?
这是代码(工作JS小提琴在上面链接(。我试图尽可能地简化它,以便专注于手头的问题。
$(function () {
var flag = false;
$('#container').highcharts({
chart: {
type: 'columnrange',
inverted: true,
events: {
click: function (e) {
if (!flag) {
var y = e.yAxis[0].value;
this.series[0].addPoint({
name: 'New',
low: y,
high: (y + 10),
color: 'red',
events: {
click: function () {
this.remove();
flag = false;
}
}
});
flag = true;
}
}
}
},
xAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
},
tooltip: {
enabled: false
},
series: [{
name: 'Temperatures',
data: [
[-9.7, 9.4],
[-8.7, 6.5],
[-3.5, 9.4],
[-1.4, 19.9],
[0.0, 22.6],
[2.9, 29.5],
[9.2, 30.7],
[7.3, 26.5],
[4.4, 18.0],
[3.2, 8.5]
]
}]
});
});
我已经通读了Highcharts API,并尝试了我能想到的一切,但无济于事。任何帮助,不胜感激。谢谢。
OP 和我之间的合作努力......
重新注入原始 x 轴类别和系列数据:
events: {
click: function () {
this.remove();
chart.xAxis[0].update({
categories: xAxisCategories
});
chart.series[0].update({
data: seriesData
});
flag = false;
}
}
哪里:
-
chart = $('#container').highcharts()
-
xAxisCategories = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-
seriesData = [....]
(原始系列数据(
更新的小提琴
相关文章:
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- JQuery 测试元素是可见的还是隐藏的,然后添加删除类
- 我需要帮助来调用add()函数和验证函数,所以首先它将验证和然后添加
- 计算具有特定类的元素的数量,然后添加对它们进行编号的ID
- 我可以使用jquery和AJAX来调用cgi-bin脚本,然后添加消息事件来处理服务器发送事件吗
- JavaScript create 元素,然后添加它一个事件
- 如何使用 javascript 在
中搜索字符串,然后添加到该 id - Ember - 绑定到数组控制器中的过滤列表,然后添加新记录
- iMacros 循环然后停止,然后添加另一个命令
- 从依赖于下拉菜单的文本框中获取值,然后添加值
- 获取输入的小计,然后添加
- Angular2-NgFor内部树模型:删除然后添加元素时顺序错误
- 如何将单词转换为数字,然后添加
- 输入值检查为唯一,然后添加到对象数组- JavaScript
- 我如何删除.append()然后添加.append()
- 是否有可能将大量文本包装三次,然后添加更多链接
- jQuery优化有效的过滤,然后添加类到多个元素
- 如何为cakephp中定义的表单标签添加类,然后添加jquery事件
- Jquery获取选择选项值,然后添加参数