Tooltipは、HighChartsのホバーでターンアップしません
-
26-10-2019 - |
質問
それを見てください、ツールチップはまったく表示されません。 Tooltip DataFormatが他の機能によって過剰に装備されている場合、私はDONNOです。また、ズームインしたときのx軸の日付は数分を表示しない場合、そのために何をすべきですか?
解決
Firefoxの下で、Tooltip FormationのJavaScriptエラーが次のとおりです。
Uncaught TypeError: Cannot read property 'name' of undefined
これはに反しているようです ドキュメント (おそらく共有されていないからですか?)。使っていると思います
this.points[0].series.name
これを修正します。また、これを変更する必要があります。 this.points[0].y
それが機能するために。
他のヒント
まったく異なる視点から - 私はまた、UltrabookでChromeを使用してHighChartsのツールチップに問題がありました。この問題は、IEまたはFirefoxで発生していませんでした。
私は共有シリーズを使用していなかったので、上記のソリューションは適用されませんでした。
問題は、ChromeがUltrabookにタッチスクリーンがあることを認識し、タッチイベントを有効にすることです。 HighCharts(v2.2.5)は、タッチをサポートするデバイスの「マウスオーバー」イベントを有効にするのではなく、「TouchStart」イベントを有効にします。マウスがアイコンの上にホバリングしたときに「Touchstart」が発生していなかったため、ツールチップが表示されませんでした。
これは、デバイスタイプに基づいてハンドラーを追加するHighChartsのラインです。
.on(hasTouch ? 'touchstart' : 'mouseover', function (e) {
series.onMouseOver();
if (e.target._i !== UNDEFINED) { // undefined on graph in scatterchart
points[e.target._i].onMouseOver();
}
})
したがって、おそらく「マウスオーバー」ハンドラーを明示的に追加し、これらの場合に「TouchStart」をトリガーすることができます。
HighChartsは、OnTouchStartの存在をチェックして、タッチ対応デバイスを決定します。
hasTouch = doc.documentElement.ontouchstart !== UNDEFINED,
これを試して:
formatter: function() {
var point = this.points[0],
x = point.x,
y = point.y,
seriesName = point.series.name;
return Highcharts.dateFormat('%A,%b %e,%Y, %H:%M', x) +'<br/> '+'<strong>'+ seriesName +'</strong>'+ y;
}
私はHighChartsをたくさん使っていましたが、Highstockを使用したことはありませんが マーク これはドキュメントに反すると述べた。バグのように見えます。