2016-05-10 7 views
0

私は時間軸の線図を持っていますが、クリック座標で各スケールの値を取得しようとしています。ChartJS v2:クリック座標のスケール値(時間スケール)

ChartJSオプションで指定された

私のonClick機能:

onClick: function(event, elementsAtEvent) 
{ 
    console.log(event, elementsAtEvent, this); 
    var valueX = null, valueY = null; 
    for (var scaleName in this.scales) { 
     var scale = this.scales[scaleName]; 
     console.log(scale.id, scale.isHorizontal()); 
     if (scale.isHorizontal()) { 
      valueX = scale.getValueForPixel(event.offsetX); 
     } else { 
      valueY = scale.getValueForPixel(event.offsetY); 
     } 
    } 
    console.log(event.offsetX, valueX, null, event.offsetY, valueY); 
}, 

JSFiddle:https://jsfiddle.net/AllenJB/dmebo9g5/1/

上記のコードは、X(タイムスケール)Y軸のために働くように見えますが、ではない - それは、常にリターングラフのどこをクリックしても最後の値です。

何が間違っていますか?

答えて

1

このコードは実際に問題なく動作します。唯一の問題は、値をチェックするためにモーメントオブジェクトの_i値を調べていたことです(これは、オブジェクトを作成する際の初期入力として使用される値であり、必ずしも現在の値ではありません)。

console.log(event.offsetX, valueX.format('YYYY-MM-DD HH:mm:ss'), null, event.offsetY, valueY); 
次にはconsole.logの行を変更する

は期待/正しい結果が得られ

関連する問題