在highcharts中动态添加和删除自定义导出按钮

时间:2013-08-23 00:39:18

标签: javascript highcharts highstock

有人知道如何在highcharts中动态添加或删除“导出”按钮吗?

我已经能够使用类似于此的代码成功添加按钮:

exporting: {
        buttons: {
            customButton: {
                text: 'Custom Button',
                onclick: function () {
                    alert('You pressed the button!');
                }
            }
        }
    }

但是我希望稍后可以通过javascript事件将该按钮添加到图表中(然后很快将其删除)。

1 个答案:

答案 0 :(得分:6)

使用塞巴斯蒂安提供的方向,我能够完全解决这个问题。

此处可以找到通过渲染器添加按钮的文档(遗憾的是,没有信息在highcharts官方api中):http://forum.highcharts.com/viewtopic.php?f=9&t=15416

这是重要的部分:

/**
* Create a button with preset states
* @param {String} text
* @param {Number} x
* @param {Number} y
* @param {Function} callback
* @param {Object} normalState
* @param {Object} hoverState
* @param {Object} pressedState
*/
button: function (text, x, y, callback, normalState, hoverState, pressedState) {}

以下是我使用的代码:

hChart是highcharts主对象。

hChart.drillupCustomButton = hChart.renderer.button(
            'DRILL BACK UP', 
            100, 
            7, 
            function(){
                //run whatever code you want here for when button is clicked
                //This next line of code is how you remove the button (I chose to remove the button when the button is clicked)
                $(hChart.drillupCustomButton.element).remove();
                //You could also remove it via the id like this
                $('#drillupCustomButtonID').remove();
            }, 
            null, 
            null, 
            null
            )
            .attr({
                id: 'drillupCustomButtonID'
            })
            .add();