2014-12-21 4 views
0

하이 차트 데이터 라벨로 작업하는 데 여전히 큰 문제가 있습니다. 이제 포인트를 클릭하여 데이터 레이블을 표시하거나 숨길 수 있습니다. 시도 :하이 차트 선택된 포인트의 데이터 라벨 표시/숨기기

plotOptions: { 
      series: { 
       allowPointSelect : true, 
       point: { 
        events: { 
         select /*click*/: function() { 
          this.options.dataLabels.enabled = !this.options.dataLabels.enabled; 
          this.update(); 
         } 
        } 
       }     
      } 
     } 

그러나 얻을 Uncaught TypeError: Cannot set property 'enabled' of undefined.

PlotOptions 레벨에 point.selectpoint.click과 같은 포인트 이벤트가 있지만 highcharts.com에서 제공 한 예제를 보면 도움이되지 않습니다.

또한 내가 배열 포인트 like series[0].data[1] 등을 통해 특정 세리와 포인트 또는 포인트로 작업해야하는지 알 수 없습니까? 감사합니다.

답변

4

업데이트 된 속성을 Point.update()method에 전달합니다.

  point:{ 
       events:{ 
        click: function(){ 
         // determine toggle state 
         // on first click this.dataLabels is undefined... 
         var e = !this.dataLabels || this.dataLabels.enabled ? false : true; 
         this.update({ 
          dataLabels:{ 
           enabled: e 
          } 
         }); 
        } 
       } 
      } 

Here's an example.

+0

고맙습니다. 그러나 어떻게 디폴트로 보이지 않게 할 수 있습니까? dataLabels : {enabled : false}를 설정하면 점을 클릭해도 표시되지 않습니다. ( – Daria

+4

조건을 :! this.dataLabels.enabled? true : false; '로 변경합니다. –

+0

@ Steve.B, 논리와 반전 된 바이올린은 [여기] (http://jsfiddle.net/7wLxwfq6/3/) – Mark

관련 문제