Highcharts: HTMLDataLabelsとJavaScript例外を発生させずに更新

作成日 2017年02月27日  ·  3コメント  ·  ソース: highcharts/highcharts

私はまた別のあいまいな問題を抱えています。

条件付きHTMLdataLabelsを使用して、ポイントの値に応じて画像を表示します。

dataLabelsが存在するチャートから存在しないチャートに渡すと、javascript例外が発生することがあります。

TypeError:未定義のプロパティ 'onmouseover'を設定できません

これは、次の条件でのみ発生します。

  • DataLabelはuseHTMLに設定されています:true
  • 少なくとも1つのdataLabelsが存在する状態でグラフをレンダリングした後、「setData()」呼び出しに続いて、dataLabelsが存在しないように値を変更しました。
  • 一連のプロパティで.update()を呼び出します(マージするプロパティが空の場合でも)。

予想される行動

エラーなし

実際の動作

例外がスローされました

再現手順のあるライブデモ

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

ボタンをクリックします。

影響を受けるブラウザ

全て

回避策

dataLabelsでnullの代わりに空の文字列を返すことができることは知っていますが、これにより多くのポイントで大幅な速度低下が発生します。
useHTMLを無効にすることもできますが、画像を表示できません。

ちなみに、githubの新しい問題のテンプレートには、「動作」(動作)にタイプミスがあります。

Bug

最も参考になるコメント

@Dunge報告していただきありがとうございます、私たちはできるだけ早くこれを修正します。

_内部注: series.dataLabelGroupが、div要素がないため、 Html.jsL320では失敗します

全てのコメント3件

@Dunge報告していただきありがとうございます、私たちはできるだけ早くこれを修正します。

_内部注: series.dataLabelGroupが、div要素がないため、 Html.jsL320では失敗します

@ jon-a-nygaardこれに対する修正に関する更新はありますか? ありがとう!

根本的な原因は、SVGグループに対応するHTMLがあり、対応するHTMLが削除されている間、SVGWrapperのオーバーライドされたon関数は削除されていないことです。 理論的には、 translateXSettertranslateYSetter同じことが起こります。 parents[0].divチェックするだけでこれを修正しますが、完全に修正するには、 SvgRenderer.jsのdivを削除するときに元の関数を復元する必要があります。

このページは役に立ちましたか?
0 / 5 - 0 評価