2017-01-17 10 views
0

ハイチャートにマウスでデータラベルを表示する方法を教えてください。実際には、選択したアイテムにデータラベルを表示し、他のデータラベルを非表示にしたい 。 Iマウスは、任意のスライスの上に、それはそれにデータラベルを表示し、他のデータを非表示lables場合、私のマウスは、青色のスライスの上にのみ55を表示.IT言い換えれば はここ ハイチャートでマウスでデータラベルを表示する方法は?

は私のコード http://jsfiddle.net/nyhmdtb8/9/

$(function() { 
var colors= [ 
       '#0066FF', 
       '#33CC33', 
       '#FF0000', 
       '#FFFF00', 
      ]; 
    $('#container').highcharts({ 
    chart: { 
     type: 'pie' 
    }, 

    credits: { 
     enabled: false 
    }, 
    exporting: { 
     enabled: false 
    }, 
    legend: { 

     symbolHeight: 1, 
     symbolWidth: 1, 
     symbolRadius: 0, 
     useHTML: true, 
     align: 'right', 
     verticalAlign: 'top', 
     itemWidth: 100, 
     layout: 'vertical', 
     x: 0, 
     y: 100, 
     labelFormatter: function() { 

     return '<div style="padding:5px;width:55px;background-color:' + this.color + '"><span style="color: #ffffff;">' + this.name + ': <b>' + this.y + '</b> </span></div> </n>'; 
     } 
    }, 
    yAxis: { 
     title: { 
     text: 'Total percent market share' 
     } 
    }, 
        plotOptions: { 

         pie: { 
        showInLegend: true, 
         dataLabels: { 
         format: '<b>{point.y}</b>', 

         style: { 
          fontWeight: 'bold', 
          color: 'white' 
         } 
        }, 
      point: { 
       events: { 
        legendItemClick: function() { 
        return false; 
        }, 
        mouseOver: function(e) { 
       var series = this.series; 
       console.log(series) 
       for (var i = 0; i < series.data.length; i++) { 
       var point = series.data[i]; 
       console.log(point) 
       if (point == this) { 
        console.log('yes') 
        point.update({color: series.chart.options.colors[this.index]}); 
       } else { 
        point.update({ 
         color: '#CCCCCC' 
        }); 
       } 
      } 

      return false; 
     }, 
       mouseOut: function(e) { 
       var series = this.series; 
       console.log(series) 
       for (var i = 0; i < series.data.length; i++) { 
       var point = series.data[i]; 
       point.update({color: series.chart.options.colors[i]}); 

      } 

      return false; 
     } 

       } 
       }, 
        startAngle: 0, 
        endAngle: 270, 
      } 
      }, 
    tooltip: { 
     enabled: false, 
     shadow: false 
    }, 
    series: [{ 
     states: { 
     hover: { 
      enabled: false 
     } 
     }, 
     showInLegend: false, 
     name: 'election result', 
     enabled: true, 
     dataLabels: { 
     enabled: true 
     }, 
     data: [ 
     ['A', 55], 
     ['B', 65], 

     ], 
     size: '30%', 
     innerSize: '70%', 
    }, { 
     states: { 
     hover: { 
      enabled: false 
     } 
     }, 
     name: 'Versions', 
     data: [ 
     ['sdsd', 55], 
     ['sdf', 65], 
     ['sdf', 65], 
     ['sdf', 132], 

     ], 
     size: '70%', 
     innerSize: '80%', 

    }] 
    },function(chart){ 
         $(chart.series[1].data).each(function(i, serie) { 
      $(serie.legendItem.element).hover(function() { 
      // alert('--dd--') 
      mouseOverEvent(chart.series[1].data, serie.index, true); 
      }, function() { 
       alert('----'); 
       mouseOutEvent(chart.series[1].data, serie.index); 
      }); 
     }); 
      function mouseOverEvent(series, index, hide) { 
       for (var i = 0; i < series.length; i++) { 
       if (index == i) { 
        series[i].update({color: colors[i]}); 
       } else { 
        series[i].update({ 
         color: '#CCCCCC' 
        }); 
       } 
      } 

      } 
         function mouseOutEvent(series, index, hide) { 
       for (var i = 0; i < series.length; i++) { 
        series[i].update({color:colors[i]}); 
      } 

      } 
    }); 

}); 

例ですデータラベル、残りは非表示になり、ときに私のマウスうち、すべてのラベルが再び

+0

質問は重複しています。私はこれを必要とします。私は必要な色を更新するには、[ここ]からの回答を参照してください(http://stackoverflow.com/questions/41691424/why-line-is-not-display-in-highcharts) – morganfree

答えて

0

メイクツールチップ有効に真の代わりに、

すなわち偽表示します
+0

i番目のデータラベルを行う – user5711656

関連する問題