我正在尝试向我的 HighChart 动态添加一个菜单项,以支持具有动态生成的函数名称的动态向下钻取。当使用像警报这样的静态定义函数时,我能够成功地将新的 menuItems 添加到现有的 contextButton 中,但是,当我使用 var 定义一个函数时,它不会调用正确的函数。以下工作:
var chartOptions = {
chart: {
renderTo: myChartDiv,
zoomType: 'x',
type: 'area'
},
exporting: {
enabled: true,
buttons: {
contextButton: {
menuItems: [{
text: 'My Test',
onclick: function() {
alert('success!');
}
}]
}}
}};
但是,只要我想添加一个具有在变量中定义的函数的新菜单项,就会跳过该变量定义的调用。IE:
var c1 = "chart1";
var c2 = "chart2";
var drilldownMethod = "toggleCharts('" + c1 + "','" + c2 + "')";
var newDrilldown = {
text: Show Chart 2,
onclick: function () {alert('test1'); drilldownMethod; alert('test2') }
};
chartOptions.exporting.buttons.contextButton.menuItems.push(newDrilldown);
我确实看到了新的菜单项“显示图表 2”,当我单击它时,确实会出现警报“test1”和“test2”;但是,从不调用字符串变量“drilldownMethod”中的函数(该方法中也有一个警报来证明这一点)。
关于如何做到这一点的任何想法?