折れ線グラフを作成しています。線のポイントをクリックすると、このポイントに関するデータを含むポップアップを表示したいと思います。私が解決しようとしている問題は、ID、このポイントに関連付けられているシリーズ、またはそのようなものを取得することです。
これが私のコードです:
plotOptions: {
column: {
pointWidth: 20
},
series: {
cursor: 'pointer',
events: {
click: function(event) {
requestData(event.point);
}
}
}
私は試した
requestData(this.point)
、
requestData(this.point.id)
また、それは動作しません。
ポイントのIDを取得するにはどうすればよいですか?
どうもありがとう。
ドキュメントによると、event.pointはグラフ上の最も近いポイントへのポインタを保持します。
そこで、コンソールにevent.point
を書き込んで、何が利用できるかを確認します。
console.log(event.point);
クリック:シリーズがクリックされたときに発生します。 thisキーワードは、シリーズオブジェクト自体を参照します。 1つのパラメーター、eventが関数に渡されます。これには、Highchartsのベースとして使用されているライブラリに応じて、jQueryまたはMooToolsに基づく一般的なイベント情報が含まれています。さらに、event.pointは、グラフ上の最も近いポイントへのポインターを保持します。
ドキュメントの例に基づく例:http://jsfiddle.net/5nTYd/
ポイントをクリックして、コンソールを確認します。
これを行うには、3つのオブジェクトを系列データ配列に渡し、クリックしてオブジェクトのconfig属性から引き出します。
したがって、シリーズデータは次のように作成できます。
series: [{
name: 'Example',
yAxis: 0,
type: 'spline',
data: [[1294099200000,220.0,37],[1296432000000,190.0,40],[1297036800000,184.4,5]]
}]
上記のデータ属性では、1番目の要素は日付(x)、2番目の要素は別のデータポイント(y)、3番目はそのデータオブジェクトを表すオブジェクトのIDです。この「z」はグラフには表示されませんが、構成配列の3番目の要素として表示されます。例:plotOptionsポイント属性を使用してクリックをキャプチャすると、オブジェクトのIDはthis.config [2]としてアラートに含まれます。
plotOptions: {
series: {
cursor: 'pointer',
point: {events: {click: function() {console.log(this); alert('Category: '+ this.category +', value: '+ this.y + 'Series: ' + this.series.name + ' ID: ' + this.config[2])}}}
}
},
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function() {
console.log(this);
alert('Category: '+ this.category +', value: '+ this.y + 'Series: ' + this.series.name + ' ID: ' + this.config[2])
}
}
}
}
},
検索でこの古い投稿を見つけました==>ハイチャートの「トレンドライン」[例: "line-time-series"]チャート[描画された線自体の任意の場所をクリックすると、ポイントにマーカーを追加します]。さて、あまり多くのコードを表示せずに、
cursor: 'pointer',
point: {
events: {
click: function(e) {
alert("X("+this.x+"),Y("+this.y+")");
}//click
}//events
}//point
詳細をご希望の場合は、喜んでご提供いたします。
私は同じ問題を抱えていました...私が正しく理解していれば。私の解決策はこれです、シリーズのIDを取得するために...それが役立つかどうかを確認してください...
plotOptions{
series:{
cursor: 'pointer',
events: {
click: function(event) {
console.log(event.point.series.userOptions.id);
}
}
}