Highcharts中的动态PlotLine

时间:2014-07-30 15:57:51

标签: javascript highcharts

我有一个带有水平PlotLine的散点图。我希望人们能够拖动PlotLine。 y轴值用作阈值以生成柱形图(最初使用阈值的默认值生成柱形图)。到目前为止,我使用我在Highcharts论坛上找到的代码使用可拖动的情节线:

var line,
    clickX,
    clickY;

var start= function (e) {
    $(document).bind({
        'mousemove.line': step,
        'mouseup.line': stop
    });
    clickY=e.pageY - line.translateY;
}

var step = function (e) {
    line.translate(e.pageX - clickX, e.pageY - clickY)
}

var stop = function (e) {
    var chart = $('#container').highcharts();
    var max_y_axis = chart.yAxis[0].max;
    var newVal = chart.yAxis[0].toValue(e.pageY - clickY + chart.plotTop) + chart.yAxis[0].plotLinesAndBands[0].options.value)- max_y_axis;
    $('#report').text('Value: ' + newVal);
    $(document).unbind('.line');
}

这很好用,我可以看到正确生成阈值。但是,我想在我的代码中的其他地方访问值newVal(阈值),即创建第二个图表。有没有人知道如何在函数之外获得newVal?

1 个答案:

答案 0 :(得分:0)

只是扩大其范围:

var line,
    clickX,
    clickY,
    newVal;

var start= function (e) {
    $(document).bind({
        'mousemove.line': step,
        'mouseup.line': stop
    });
    clickY=e.pageY - line.translateY;
}

var step = function (e) {
    line.translate(e.pageX - clickX, e.pageY - clickY)
}

var stop = function (e) {
    var chart = $('#container').highcharts();
    var max_y_axis = chart.yAxis[0].max;
    newVal = chart.yAxis[0].toValue(e.pageY - clickY + chart.plotTop) + chart.yAxis[0].plotLinesAndBands[0].options.value)- max_y_axis;
    $('#report').text('Value: ' + newVal);
    $(document).unbind('.line');
}