[英]AmCharts, capturing click event for period selector
我正在使用AmCharts 3,我想知道有沒有辦法捕獲一個事件來點擊周期選擇器的按鈕?
Docs狀態我可以將一個監聽器添加到“已更改”類型的句點選擇器中,但事件幾乎可以隨時運行
有一個'縮放'的監聽器,但每當我縮放圖表時它都會運行,無論我是否點擊了周期選擇器
這是我的嘗試:
chart = AmCharts.makeChart(scope.vm.chartId, chartSettings);
AmCharts.addInitHandler(function () {
// add events to item
_.each(chart.panels, function (item) {
//item.addListener("zoomed", onZoomed);
item.addListener("changed", function(e) {
console.debug("changed " + e.periodString);
});
});
});
您可以使用期間選擇器的changed
事件。
即:
var chart = AmCharts.makeChart( "chartdiv", {
"type": "stock",
// ...
"periodSelector": {
"position": "left",
"periods": [ {
"period": "MM",
"selected": true,
"count": 1,
"label": "1 month"
}, {
"period": "YYYY",
"count": 1,
"label": "1 year"
}, {
"period": "YTD",
"label": "YTD"
}, {
"period": "MAX",
"label": "MAX"
} ],
"listeners": [ {
"event": "changed",
"method": function( event ) {
if ( event.predefinedPeriod !== undefined ) {
console.log( event.predefinedPeriod, event.count );
}
}
} ]
},
// ...
} );
請注意,此事件也將在使用日期輸入字段更改日期時執行,因此檢查是否定義了event.predefinedPeriod
。
還請記住,在圖表init上也選擇了默認時間段。 因此,首次加載圖表時將觸發此事件,而無需任何用戶交互。
這是一個有效的演示 。
由於您是通過配置對象啟動的,因此我建議您使用最新版AmCharts中支持的新“偵聽器”屬性,將事件處理程序添加到chartSettings對象上的periodSelector對象。 它應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.