Frage

http://jsfiddle.net/cyjak/13/

Schauen Sie es sich an, das Tooltip zeigt überhaupt nicht. Ich done done, wenn Tooltip DataFormat von einer anderen Funktion übernommen wird. Und auch das Datum in der X-Achse, wenn sie in Zoomen in Minuten zeigt, was soll ich dafür tun?

War es hilfreich?

Lösung

Unter Firefox kann ich sehen, dass Ihr JavaScript -Fehler in Ihrem Tooltip -Formatierer lautet:

Uncaught TypeError: Cannot read property 'name' of undefined

Dies scheint dem Widerspruch zu dem Dokumente (Vielleicht, weil es nicht geteilt wird?). Ich finde das benutze

this.points[0].series.name

Behebt dies. Beachten Sie, Sie müssen auch Ihre This.y in etwas Ähnliches ändern this.points[0].y damit das funktioniert.

Andere Tipps

Aus völlig anderer Perspektive hatte ich auch Probleme mit Highcharts -Tooltips mit Chrome auf meinem Ultrabook. Dieses Problem trat weder in IE oder Firefox auf.

Ich habe Shared -Serien nicht verwendet, daher galt die obige Lösung nicht.

Es stellt sich heraus, dass das Problem ist, dass Chrome erkennt, dass der Ultrabook einen Touchscreen hat und die Berührungsereignisse ermöglicht. Highcharts (v2.2.5) aktiviert das "Mausover" -Ereignis für Geräte, die Touch unterstützen, nicht, sondern das Ereignis "TouchStart". Da der "Touchstart" nicht auftrat, als meine Maus über das Symbol schwebte, erschien der Tooltip nie.

Dies ist die Linie in Highcharts, die den Handler basierend auf dem Gerätetyp hinzufügt:

.on(hasTouch ? 'touchstart' : 'mouseover', function (e) {
    series.onMouseOver();
    if (e.target._i !== UNDEFINED) { // undefined on graph in scatterchart
        points[e.target._i].onMouseOver();
    }
})

Daher würde es wahrscheinlich funktionieren, in diesen Fällen explizit einen "Mausover" -Handler hinzuzufügen und einen "Touchstart" auszulösen.

Highcharts prüft die Existenz von OnTouchstart, um berührungsfähige Geräte zu bestimmen:

hasTouch = doc.documentElement.ontouchstart !== UNDEFINED,

Versuche dies:

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;
}

Ich habe viel Highcharts verwendet, aber noch nie Highstock verwendet, aber wie Markieren sagte, das verstößt gegen die Dokumente. Sieht aus wie ein Fehler.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top