Highcharts: HTML DataLabels et rafraîchissement sans aucune cause, exception javascript

Créé le 27 févr. 2017  ·  3Commentaires  ·  Source: highcharts/highcharts

Moi encore avec un autre problème obscur.

J'utilise un dataLabels HTML conditionnel pour afficher une image en fonction de la valeur d'un point.

Parfois, lorsque je passe d'un graphique avec dataLabels présent à un graphique sans aucun, j'obtiens une exception javascript :

TypeError : impossible de définir la propriété 'onmouseover' d'undefined

Cela ne se produit que dans ces conditions :

  • DataLabel est défini sur useHTML : true
  • Nous avons eu un graphique rendu avec au moins un dataLabels présent suivi d'un appel "setData()" modifiant les valeurs afin qu'aucun dataLabels ne soit présent.
  • On appelle .update() sur les propriétés de la série (même si les propriétés à fusionner sont vides).

Comportement prévisible

Pas d'erreur

Comportement réel

Exception levée

Démo en direct avec étapes à reproduire

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

Cliquez sur le bouton.

Navigateur(s) concerné(s)

Tous

solution de contournement

Je sais que je peux retourner une chaîne vide au lieu de null dans les dataLabels, mais cela provoque un ralentissement massif avec de nombreux points.
Je peux également désactiver useHTML, mais je ne peux pas afficher les images.

En remarque, votre nouveau modèle de problème github a une faute de frappe dans "comportement" (comportement)

Bug

Commentaire le plus utile

@Dunge Merci pour le signalement, nous allons résoudre ce problème dès que possible.

_Note interne : échoue sur Html.js L320 car il y a un series.dataLabelGroup mais pas d'élément div_

Tous les 3 commentaires

@Dunge Merci pour le signalement, nous allons résoudre ce problème dès que possible.

_Note interne : échoue sur Html.js L320 car il y a un series.dataLabelGroup mais pas d'élément div_

@jon-a-nygaard Des mises à jour sur un correctif pour cela? Merci!

La cause première est que le groupe SVG a un équivalent HTML, et bien que l'équivalent HTML soit supprimé, la fonction on remplacée par SVGWrapper ne l'est pas. La même chose se produit théoriquement avec translateXSetter et translateYSetter . Je vais résoudre ce problème en vérifiant simplement parents[0].div , mais un correctif complet nécessiterait que nous restaurons les fonctions d'origine lors de la suppression du div dans SvgRenderer.js .

Cette page vous a été utile?
0 / 5 - 0 notes