2

Highcharts はチャート ポイントのクリックを検出する機会を提供しますが、ダブルクリックやマウスダウン イベントなどの他のイベントを検出することは可能ですか?

前もって感謝します

4

2 に答える 2

5

各コンポーネントは特定のイベントのみをサポートします。たとえば、Chart コンポーネントは、、、、、およびを検出しaddSeriesます。このセットが拡張可能であるとは思えないため、 のような別のイベントをキャプチャすることはできません。clickloadredrawselectionmousedown

ページのソースを調べて、HighCharts が生成する要素にリスナーをアタッチすることもできますが、これは文書化されていない回避策であり、将来のリリースで壊れる可能性があります。さらに、< IE9 をサポートする必要がある場合は、SVG と VML の両方で生成されたマークアップのハンドラーが必要になります。

いくつかのイベントでクリエイティブになることができます。クリック ハンドラーを使用してダブルクリックを検出する例を次に示します。

ワーキングデモ

var clickDetected = false;

// create the chart
$('#container').highcharts({
    chart: {
        events: {
            click: function(event) {
                if(clickDetected) {
                    alert ('x: '+ event.xAxis[0].value +', y: '+ event.yAxis[0].value);
                    clickDetected = false;
                } else {
                    clickDetected = true;
                    setTimeout(function() {
                        clickDetected = false;
                    }, 500); 
                }
            }
        }        
    },
   ...
于 2013-08-23T13:02:29.957 に答える
2

それは可能ですが、別の方法で。ハイチャートでは、 element.onを使用して各要素にイベントを追加できます。例えば:

    chart.series[0].data[0].graphic.on('dblclick', function() {
       //callback here
    });

そしてシンプルな jsFiddleです。良いことは、すべての要素に追加でき、すべてのブラウザーで確実に動作することです。

于 2013-08-23T13:14:33.617 に答える