2014-12-01 3 views
1

나는이 haml 다음 시나리오 : ID가 하나 인 하이 차트를 여러 개 가질 수 있습니까?

#ownershipChart{"chart-data" => [["pie1", 100], ["pie2", 150], ["pie3", 200]]} 
#ownershipChart{"chart-data" => [["pie4", 45], ["pie5", 50], ["pie6", 20]]} 

와 자바 스크립트

:

$(function(){ 
    $('#ownershipChart').highcharts({ 
    chart: { 
     type: 'pie' 
    }, 
    title:{ 
     text: 'Ownership' 
    }, 
    plotOptions:{ 
     pie:{ 
     allowPointSelect: true 
     } 
    }, 
    series: [{ 
     type: 'pie', 
     name: 'Ownership', 
     data: $('#ownershipChart').attr('chart-data') 
    }] 
    }); 
}); 

당신은 내가 이들 두 차트에 걸쳐 적용 하나 개 highcharts 기능을 만들려고 해요 알 수 있듯이 같은 시간. 먼저 $('#ownershipChart').attr('chart-data')이 아무 것도 반환하지 않기 때문에 이것이 틀렸다는 것을 알고 있습니다. 둘째, 이것에 대해 생각하는 것이 올바른 방법일까요? 나는 동적으로 hamldiv id="ownershipChart"을 생성하고 있으므로, 매번 highcharts js 객체가 동적으로 생성 될 때마다 오류가 발생합니다.

divid이 첨부되어있을 때 여러 개의 하이 차트를 생성하는 가장 좋은 방법은 무엇인지 알 수없고 사용자별로 다릅니다.

+2

여기 수업을 사용할 수 없습니까? – kki3908050

+0

나는 아래의 @Rory 해법을 시도했지만, 객체에서 set의 데이터를 실제로 반환하기 위해'$ (this) .attr ('chart-data')'를 얻을 수 없다. – locoboy

+0

@locoboy, this 참조 http://stackoverflow.com/questions/10996778/rendering-highcharts-to-class-instead-of-id –

답변

4

대신 클래스를 사용하고 각 인스턴스를 반복하여 차트를 만들 수 있습니다. 이런 일 : 데이터 수단 data 속성 this에 참고로 채워진 것을

$(function() { 
    $('.ownershipChart').each(function() { 
     $(this).highcharts({ 
      chart: { 
       type: 'pie' 
      }, 
      title: { 
       text: 'Ownership' 
      }, 
      plotOptions: { 
       pie: { 
        allowPointSelect: true 
       } 
      }, 
      series: [{ 
       type: 'pie', 
       name: 'Ownership', 
       data: $(this).attr('chart-data') 
      }] 
     }); 
    }); 
}); 

참고, 반복의 전류 소자로부터 판독된다.

+0

하이 차트를 사용하면 클래스를 사용할 수 없다고 생각합니다. – locoboy

+0

jQuery 커넥터를 사용할 때와 마찬가지입니다. 네이티브 JS 구현을 사용하면 내부적으로 getElementById를 사용하므로'id' 속성 만 사용할 수 있습니다. –

+0

이 시도했을 때 데이터가 highcharts 개체에서로드되지 않았습니다. 나는 $ (this) .attr ('chart-data')가 작동한다는 경고를 통해 확인했다. 'data : $ (this) .attr ('chart-data')가 컴파일되지 않는다고 잘못 생각할 수 있습니까? – locoboy

관련 문제