如何删除HighCharts中添加了.add()函数的元素?

时间:2014-06-26 22:19:20

标签: highcharts

我在图表上添加了标签和其他图形,但我想随意删除它们。

例如;在按钮中我用

创建一个圆圈
chart.rendered.circle(100,100,10).attr ({
    fill: 'red',
    stroke: 'black',
    'stroke-width': 1
    )}.add();

现在我想在另一个按钮中删除它;但是我无法在API文档中看到你是如何做到这一点的。 有一个destroy(),但你怎么引用那个圈子?我在圆圈对象中看不到ID属性;所以我不能像对待RemovePlotLine()那样解决它。

我对标签也有同样的问题;如何在创建项目后实际删除项目?

编辑:

找到一种方法,这有点像黑客:我在按钮代码之外创建了一个变量圈;我使用add()后立即隐藏它。然后我在按钮中使用show()和hide()。

var mySuperDot= chart.rendered.circle(100,100,10).attr ({
    fill: 'red',
    stroke: 'black',
    'stroke-width': 1
    )}.add()
    .hide();
按钮中的

;显示或隐藏:

mySuperDot.show();
mySuperDot.hide();

问题在于这意味着添加一堆变量,而我试图将所有内容放在执行显示/隐藏功能的按钮内(我知道这不是便携式和良好的OOP设计,我正在探索各种选项)。

有更好的方法吗?

第二次编辑:

我是新手,无法让JSFiddle工作:(这就是我所做的:

  • 抓住Highcharts网站上的第一个例子
  • 在网页上添加一个按钮,将其命名为show(无法在此处粘贴html,因为网站会对其进行解析)

  • 添加标签代码和按钮点击代码:

    $按钮= $('#节目&#39); $ button.click(函数(){

    var extremes = chart.yAxis [0] .getExtremes(); chart.renderer.label(     '最大价值:' + extremes.dataMax +'
    ' +     '最低价值:' + extremes.dataMax +'
    ' +     来自目标的达美:' +'
    ',     1050,     10 ) .attr({fill:' grey',zIndex:8}) 。新增();
    }

如果我想使用按钮来切换该标签,我无法引用该标签,并将其删除。 如果我在点击代码之外将其声明为变量,则无法获取getExtremes的值,我可以使用show / hide删除标签。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

$button = $('#show');
var label; 
$button.click(function () {

    var extremes = chart.yAxis[0].getExtremes();
    label = chart.renderer.label('Max Value: ' + extremes.dataMax + '
        ' + 'Min Value: ' + extremes.dataMax + '
        ' + 'Delta from Goal: ' + '
        ', 1050, 10).attr({
            fill: 'grey',
            zIndex: 8
    }).add();
}

现在您已引用label,因此您可以随时拨打电话label.hide()/label.show()