javascript - Highcharts "click"使用 jquery 加载范围,或加载时 addSeries

标签 javascript jquery highcharts

我正在使用 afterSetExtremes 事件来检索最小和最大 x 和 y 坐标。然后,我在范围选择时添加该系列。问题是该系列在加载时不显示。最简单的解决方案是模拟范围选择在图表加载时。这可能吗?如果不可能,是否可以在加载时添加相同的系列?

xAxis: {
        events: {
  afterSetExtremes: function(e) {
    var points = e.target.series[0].points,
            minPoint = points[1],
        maxPoint = points[points.length - 1]

    if(minPoint.y < maxPoint.y)
    {
    var series_color = 'green';
    }
    else{
    series_color = 'red';
    }
    chart.addSeries({       
    data:[{x:minPoint.x,y:minPoint.y},{x:maxPoint.x,y:maxPoint.y}],
    color: series_color,
    dashStyle: 'shortdot',
    id: 'trend'
});
while(chart.series.length > 3)
{
chart.get('trend').remove();
}
  }

}
    }

查看 jsfiddle 以了解它当前的工作方式:http://jsfiddle.net/kd3aLp6m/

最佳答案

load事件中,您可以使用fireEvent方法来触发afterSetExtremes事件。此外,为了提高性能,您可以在除第一个调用之外的所有调用中将 addSeries 方法中的 redraw 参数设置为 false

    chart: {
        ...,
        events: {
            load: function() {
                Highcharts.fireEvent(
                    this.xAxis[0],
                    'afterSetExtremes', {
                        redraw: true
                    }
                );
            }
        }
    },

现场演示:http://jsfiddle.net/BlackLabel/bdnho9uc/

API 引用:

https://api.highcharts.com/highcharts/chart.events.load

https://api.highcharts.com/class-reference/Highcharts#.fireEvent

关于javascript - Highcharts "click"使用 jquery 加载范围,或加载时 addSeries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54968102/

相关文章:

javascript - 如何在鼠标进入/离开链接时显示/隐藏非子 <div>

javascript - AJAX POST JSON 值

javascript - jquery window.resize 不工作

javascript - 从高 map 中删除放大/缩小

javascript - 如何从 Highchart 获取元素属性

javascript - 具有多个系列的 Highcharts 异步服务器加载

javascript - Js 覆盖源代码中的超链接(W3Layouts 的 Cubicle 模板)

javascript - 错误类型错误 : Cannot read property 'split' of undefined cordova-plugin-contact

jquery - xlsx.core.min.js :13 Uncaught Error: Unsupported file NaN

javascript - 如何通过 jquery ajax 检查并接收 api 调用的结果