簡體   English   中英

AmCharts,捕獲句點選擇器的點擊事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM