2016-10-19 5 views
0

一部のスライスでのみホバーを無効にしたい円グラフがあります。ハイチャート - 円グラフのスライスのホバーを無効にする

これまでのところ私ができることは、このjsfiddleにあります。エラーを引き起こすことによって(プラップ機能は存在しません)、私はホバー動作を防ぐことができます。しかし、これはきれいではないし、いつか私のコードを壊す可能性のあるplap関数を作成していれば。

私はsetStateを使用しようとしましたが、動作させることができませんでした。私は、plotOptions.series.states.hover.enabledオプションは、series.point.stateよりも強力だと思います。

私の質問は、どのようにして私が余りにも汚れていないことを達成できますか?

RQ:私はこれを見ましたquestionしかし、私がしたいことはしません。

RQ2:stackoverflowのはので、ここでいくつかのコードを要求しますが少し汚れて、私はそれが

chart: {type: 'pie'}, 
    plotOptions: { 
     series: { 
      states: {hover: {enabled: true}}, 
     } 
    }, 
    series: [{ 
     point: { 
     events: { 
      mouseOver: function() { 
      if (this.y < 100) { 
       plap(); 
      } 
      }, 
     } 
     }, 
     data: [89.9, 71.5, 106.4, 129.2, 144.0] 
    }], 
    tooltip: {enabled: false}, 
+0

あなたは "あまりにも汚いこと" によって、正確に何を意味するのですか? –

+0

このコードは "Uncaught ReferenceError:plapが定義されていません"というコードを生成します。これは私にとってクリーンなことの逆です。それは私のコンソールを汚染し、将来予告なしにそれが壊れるリスクは高いです。 – M0rkHaV

+0

chart.series [0] .data .......のようなものを使用してください。 – Mahi

答えて

0

ソリューションを動作させるために使用するチャートオプションは、mouseOverイベントにホバーするポイントの状態を設定されています。 setState( 'hover')は、すでにホバー状態になっている場合は何も行いません。

mouseOver: function() { 
     if (this.y < 100) { 
    //  plap(); 
       this.state = 'hover'; 
     } 
     } 

例:https://jsfiddle.net/cp2tL9sd/4/

+0

それは動作しますが、私はなぜよく分からないのですか?ホバーに状態を設定すると、実際にホバーを無効にすることができます。これはどのようにすることができますか? – M0rkHaV

+0

これはsetState()がどのように実装されたかの結果です。ポイントが何らかの状態にある場合、setState()メソッドは、何かの前に、ポイントの実際の状態が '状態である'と異なるかどうかをチェックします。等しい場合、setState()は何もしません。ポイントのグラフィックが既に更新されているとみなされるためです。 – morganfree

関連する問題