Highcharts: HTML DataLabels und Aktualisierung ohne Ursache Javascript-Ausnahme

Erstellt am 27. Feb. 2017  ·  3Kommentare  ·  Quelle: highcharts/highcharts

Ich wieder mit einem anderen obskuren Problem.

Ich verwende ein bedingtes HTML dataLabels, um ein Bild abhängig vom Wert eines Punkts anzuzeigen.

Manchmal, wenn ich von einem Diagramm mit vorhandenen dataLabels zu einem Diagramm ohne Daten übergehe, erhalte ich eine Javascript-Ausnahme:

TypeError: Die Eigenschaft 'onmouseover' von undefined kann nicht gesetzt werden

Dies geschieht nur unter diesen Bedingungen:

  • DataLabel ist auf useHTML eingestellt: true
  • Wir haben ein Diagramm mit mindestens einem vorhandenen dataLabels gerendert, gefolgt von einem "setData()"-Aufruf, der die Werte so ändert, dass keine dataLabels vorhanden sind.
  • Wir rufen .update() für die Serieneigenschaften auf (auch wenn die zusammenzuführenden Eigenschaften leer sind).

Erwartetes Verhalten

Kein Fehler

Tatsächliches Verhalten

Ausnahme geworfen

Live-Demo mit Schritten zum Reproduzieren

http://jsfiddle.net/gts29eq7/1/

Drück den Knopf.

Betroffene(r) Browser

Alle

Problemumgehung

Ich weiß, dass ich in den dataLabels eine leere Zeichenfolge anstelle von null zurückgeben kann, aber dies führt zu einer massiven Verlangsamung mit vielen Punkten.
Ich kann useHTML auch deaktivieren, aber dann kann ich keine Bilder anzeigen.

Als Randnotiz hat Ihre Github-Vorlage für neue Ausgaben einen Tippfehler in "Verhalten" (Verhalten).

Bug

Hilfreichster Kommentar

@Dunge Vielen Dank für die Meldung, wir werden dies so schnell wie möglich beheben.

_Interner Hinweis: Fehler bei series.dataLabelGroup aber kein div-Element vorhanden ist_

Alle 3 Kommentare

@Dunge Vielen Dank für die Meldung, wir werden dies so schnell wie möglich beheben.

_Interner Hinweis: Fehler bei series.dataLabelGroup aber kein div-Element vorhanden ist_

@jon-a-nygaard Irgendwelche Updates zu einem Fix dafür? Vielen Dank!

Die Hauptursache ist, dass die SVG-Gruppe ein HTML-Gegenstück hat, und während das HTML-Gegenstück gelöscht wird, ist die überschriebene on Funktion des SVGWrappers dies nicht. Dasselbe passiert theoretisch mit translateXSetter und translateYSetter . Ich werde dies beheben, indem ich einfach nach parents[0].div suche , aber eine vollständige Korrektur würde erfordern, dass wir die ursprünglichen Funktionen wiederherstellen, wenn wir das div in

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen