10

アイテムの凡例を選択したときに発生するのと同じイベントを発生させたいが、外部のhtmlボタンから発生させたい。出来ますか?

それを示すためにjsfiddleを作成しました:http://jsfiddle.net/YcJF8/1/

$('#container').highcharts({
                    chart : {
                        type : 'spline',
                    },

                    xAxis : {
                        categories : ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
                    },

                    series : [{
                        data : [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],

                    }],

                    plotOptions : {
                        series : {

                        cursor : 'pointer',
                    }
                },
});

$('#button').click(function() {
        alert("Fire legenditemclick event");
});

このjsfiddleにはボタンがあり、ボタンをクリックするとイベントが発生するか、チャートが検出してアイテムの凡例(シリーズ1)がクリックされたように動作する何かが発生します。

どうもありがとうございました

4

2 に答える 2

9

使用するだけです:

$($('.highcharts-legend-item')[0]).click()

0は、「クリック」したいシリーズのインデックスです。

fiddleを更新します。

編集

  • highcharts-legend-item凡例の各エントリのクラスです。これは、chrome 開発者ツールを使用して凡例を調べることで発見されました。
  • これ$('.highcharts-legend-item')は、そのクラスのすべての要素の配列を返す jquery セレクターです。最初のものをインデックスで選択し、$()それをjqueryオブジェクトに変換します
  • これ.clickはこれです:http://api.jquery.com/click/
于 2013-07-03T14:01:04.983 に答える
2

クリックを定義することで答えが得られると思います

$('.highcharts-legend-item')[0]) 

最高のものではありません。DOM はおそらく重いため、非常に「高価」です。私のソリューションは通常、CSS に基づいています。使用するカスタム要素のすぐ上にハイチャートの凡例アイテムの位置を設定できます。すべてのアイテムは、カスタム HTML 要素と同じ幅と高さを持つ必要があります。ハイチャート要素は、不透明度の値を 0 にして、表示されないようにする必要があります。したがって、要素をクリックすると、実際には、ハイチャートの凡例項目をクリックしています。カスタム要素に CSS を設定する場合は、legendItemClick コールバックを定義する必要があります。

plotOptions: {
    series: {
        events: {
            legendItemClick: function() {
                var legenedItemIndex = this.index // index of highchart legend item
                $("your html element:eq(" + legenedItemIndex + ")") //do something with your element
            }
        }
    }
}
于 2015-04-02T10:03:18.037 に答える