0

그래서 다양한 jQuery UI 위젯을 사용하는 웹 앱을 만들고 있습니다. 특히 아코디언 위젯을 사용하고 있습니다. 나는 아래와 같이 아코디언을 설정하는 jQuery 코드를 가지고있다.Google AnnotatedTimeline에 흥미로운 점

$('#graph').accordion({autoHeight:false, collapsible:true}); 

명백히 그래프가있다. 그래프의 경우 Google AnnotatedTimeline 시각화를 사용하고 있습니다. 이제 아코디언 옵션 active을 false로 설정하거나 아코디언이 축소 된 경우 그래프를 그릴 때마다 찾고있는 요소가 없다는 것을 알 수 있습니다. 이것은 내부적으로 그래프가 포함 된 div이 아코디언이 축소되었을 때 '숨김'상태가되기 때문입니까? 그렇다면 어떻게 해결할 수 있습니까?

중요한 이유는 사용자가 다른 요소로 작업하는 동안 해당 아코디언을 접을 수 있기 때문입니다. 그래프는 실시간으로 업데이트됩니다. 그러나 그래프를 그리는 데 필요한 요소를 찾을 수 없다면 업데이트되지 않습니다.

+0

그래서 그래프가 접힐 때 그려야합니까? 그 말이 사실이 아닙니다. 그래프가 보이면 그려야합니다. 그 그래프가 숨겨 졌을 때 그래프를 그리는 것은 쓸데없는 것입니다. 누가 그것을 볼 수 있습니까 ??? – c0deNinja

+0

이 (가) 게시물을 편집했습니다. – Perley

+0

사실 그 말이 맞는 것 같습니다. 하지만 그게 무슨 일 이니? 나는 jQuery UI에 익숙하지 않지만, 그렇다면 쉽게 해결할 수있다. 이것이 아코디언이 무너 졌을 때 그래프를 그리지 않는 이유인지 궁금했습니다. – Perley

답변

0

아코디언이 포함 된 div의 너비와 높이를 0으로 설정했는지 확인했습니다. 따라서 AnnotatedTimeline을 통해 액세스하려고 시도했을 때 유효한 너비 또는 높이를 찾을 수 없어 던져서 오류가 발생했습니다. . 그래서 내 솔루션은 간단하게 변경 콜백 함수를 추가하여 그래프가 선택되고 업데이트 간격을 재설정 할 때 그래프를 다시 그리는 것입니다. 선택을 취소하면 업데이트 간격을 정리하면됩니다.

0

jsfiddle을 사용하여이 문제를 설명하거나 재현 할 수 있다면 유용 할 것입니다.

귀하의 질문을 볼 때, 당신은 id가 'graph' 인 요소를 정의하고 있고 그것을 jquery ui accordion $('#graph').accordion({..})으로 만들고있는 것으로 보입니다. 어떤 요소에 차트를 삽입하려고합니까? 차트를 렌더링하기 전에 차트가있는 div를 계획하고 있다고 가정 할 때 적어도 그 점에 대해서는 오류가 발생하지 않아야합니다.

내가 추가 할 두 번째 관련 메모는 주석이 달린 시계열 차트 (docs)의 경우 차트의 너비와 높이를 명시 적으로 설정해야한다는 것입니다.

관련 문제