簡體   English   中英

高圖:如何通過plotOptions.series.events處理觸摸事件

[英]Highcharts: how to handle touch events via plotOptions.series.events

在Highcharts條形圖上,當用戶單擊其中一個條形圖時,其他數據將通過loadDetails函數加載到頁面上的其他位置。

loadDetails被指定為用於經由圖表的點擊回調函數plotOptions.series.events

var chart = new Highcharts.Chart({
    defaultSeriesType: 'bar',
    ...
    plotOptions: {
        series: {
            events: {
                click: loadDetails
            }
        }
    },
    ...

});

function loadDetails() {
    ...
}

問題是我需要為移動設備上的touchstart事件調用相同的回調函數。

據我所知,似乎沒有任何明顯的方法可以通過Highcharts API添加觸摸事件處理程序: http : //api.highcharts.com/highcharts#plotOptions.series.events

有誰知道如何為觸摸事件添加回調函數,或從觸摸事件觸發點擊回調函數?

是的,不支持這樣的操作,我建議您在此處創建想法。

我想到的唯一解決方法是使用Element.on函數向圖表上存在的元素添加自定義事件。 例如: http : //jsfiddle.net/3bQne/269/

    chart: {
        renderTo: 'container',
        events: {
            load: function(){
                var chart = this,
                    path = chart.series[0].tracker;

                path.on('click', function() {
                   alert("click");; 
                });
            }
        }
    }

這可行。 我試圖讓Highcharts與Apple Pencil一起使用。 我在上面使用了代碼,但包括markerGroup(以及跟蹤器),因此當用戶單擊點和一系列直線時會觸發事件。 我使用“ touchstart”事件來捕獲蘋果鉛筆的點擊。 見下文。

chart: {
        renderTo: 'container',
        events: {
            load: function(){
                var chart = this,
                    path = chart.series[0].tracker;
                    path2 = chart.series[0].markerGroup;
            path.on('touchstart', function() {
               alert(“touch");
            });
            path2.on('touchstart'), function() {
               alert(“touch 2”);
            });
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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