amCharts为特定图形(不是整个图表)添加“clickGraphItem”的监听器

时间:2014-05-15 11:01:12

标签: javascript graph amcharts

使用amCharts,我需要在" clickGraphItem"事件发生。这意味着为每个图形都有一个独特的监听器,这样我就可以调用一个具有不同参数的函数(图形名称),具体取决于哪些图形'点击了子弹。

amCharts" clickGraphItem"的常见示例监听器将此监听器添加到整个图表中。但是,无法获取已单击的项目符号的原始图形,因为该事件会触发图表中的所有图形。

我尝试更改此示例以使用graph.addListener(...)而不是chart.addListener(...),但这并不像预期的那样完全正常工作。该事件仅以某种方式触发在创建的第一个图表(graph)上,并且不适用于graph2graph3等。

有没有人知道使用amCharts这样做的另一种方法? 任何帮助将不胜感激。

最好的问候,

daZza

当前代码(在amCharts .ready函数内):

AmCharts.ready(function() {

// In between the chart is created

graph.addListener("clickGraphItem", function (event) {
var date = dateFormat(event.item.category, "mmm dd yyyy hh:MM:ss");
 getDetails(date, "graph");
});

graph1.addListener("clickGraphItem", function (event) {
var date = dateFormat(event.item.category, "mmm dd yyyy hh:MM:ss");
 getDetails(date, "graph1");
});

graph2.addListener("clickGraphItem", function (event) {
alert("graph2");
var date = dateFormat(event.item.category, "mmm dd yyyy hh:MM:ss");
 getDetails(date, "graph2");
});

}

1 个答案:

答案 0 :(得分:1)

奇怪,它应该像这样工作。你能展示完整的源代码吗? 但是,您只需将此事件侦听器添加到图表中,然后检查单击了哪个图形的项目符号。被触发的事件引用了图形对象:

{type:“clickGraph”,graph:AmGraph,chart:AmChart,event:MouseEvent}