0

ハイチャートでデフォルト状態のメカニズムを削除する方法はありますか?

ホバー状態の自動変更により、手動で設定した状態がリセットされているようです。

私が達成しようとしているのは、ユーザーがクリックしたときにシリーズを選択することです。

次のように選択状態を追加しました。

plotOptions: {
        series: {
               states: {
                     select: {

                            lineWidth: 2
                     }
               },

そして、私はこの状態を次のように手動で設定しています:

this.setState(this.state === 'select' ? '' : 'select');

lineWidth の変更は機能していますが、マウスを動かすと lineWidth がリセットされます (ホバーイベントが発生したためだと思いますが、よくわかりません)。

私はすでにホバー状態を無効にしようとしましたが、成功しませんでした:

states: {
    hover: {
        enabled: false
    },
    select: {
            lineWidth: 3

シリーズラインをクリックすると、このjsfiddleで正確な問題が発生し、選択されてから移動して選択が解除されます...理由がわかりません。

4

1 に答える 1

1

状態を常に手動で設定している場合は、グラフをインスタンス化する前に次のスニペットをコードに追加して、「通常」/リセット状態をオフにすることができます。パラメーターが渡されなかった場合は、setState 操作をキャンセルするだけです (つまり、Highcharts ソース コードがシリーズを通常に戻そうとしています)。

Highcharts.Series.prototype.setState = (function (func) {
        return function () {
            if (arguments.length>0){
                func.apply(this, arguments);
            }
        };
    } (Highcharts.Series.prototype.setState));

それがあなたが探しているものかどうか教えてください!変更された JSFiddle は次のとおりです: http://jsfiddle.net/G9d9H/8/

編集: ちょっとした説明ですが、Highcharts ソース コードが実際に行っていることは、シリーズの場合mouseOver、他のすべてのシリーズを自動的にデフォルト スタイルに戻すことです。これはおそらく状態機能の一番の使用例であるため、そのようにコーディングした理由だと思います。

于 2013-03-07T14:33:20.423 に答える