0

ハイストックスライダーの動きで円グラフを描こうとしています。

最初の動きはすべて問題なく、highStock の値と期待どおりの値を取得してaxis.extremes.userMinuserMaxます

コード

    var extremes = chart.xAxis[0].getExtremes();
    console.log(extremes);
    console.log(chart.xAxis[0]);
    console.log("userMin = " + extremes.userMin);
    console.log("userMax = " + extremes.userMax);

しかし、円グラフが描画さundefinedれると、コンソールに表示されるように、値を上回っています。何がこれを引き起こしている可能性がありますか、またはuserMin/を取得するにはどうすればよいuserMaxですか?

jsFiddle デモ

4

2 に答える 2

3

chart変数を上書きしているようです。円グラフと株価チャートに別の変数を使用します。

あなたの場合、ハンドラーの現在の (処理されている) チャートを指すために内部で使用することもできます。thischart.events.redrawデモ @ jsFiddle

redraw: function (event) {
    if (this.xAxis) {
        var extremes = this.xAxis[0].getExtremes();    
        console.log(extremes);
        console.log(chart.xAxis[0]);
        console.log("userMin = " + extremes.userMin);
        console.log("userMax = " + extremes.userMax);
        drawPie();

    }
}

ユースケースを処理するためのより適切またはより正しい方法は、スライダーのスライドで何かをしたいのでxAxis.events.setExtremes、イベントではなくイベントにハンドラーをアタッチすることです。chart.events.redraw

ドキュメントに示されているように、イベント オブジェクトには新しい最小値と最大値が含まれておりevent.min、ハンドラー内の軸event.maxを表します。 これはあなたのコードがどのように見えるかですthis

       xAxis: [
            {
            events: {
                setExtremes: function(event) {
                        console.log(this);
                        console.log("userMin = " + event.min);
                        console.log("userMax = " + event.max);
                        drawPie();                       
                }
            }}
        ],

@ jsFiddle でのスライダー イベントの処理

于 2012-09-21T19:46:19.773 に答える
0

シリーズにデータを割り当てる前に console.log を呼び出しているようです。

データをシリーズに割り当てた後、console.log を呼び出してみてください。

series : [{
            name : 'AAPL',
            data : data,
            tooltip: {
                valueDecimals: 2
            }
        }]

console.log を呼び出す前にこれに言及してください

于 2012-09-21T18:02:07.743 に答える