Dijit AccordionContainer 내부의 창을 프로그래밍 방식으로 열 수있는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1190157

  •  19-09-2019
  •  | 
  •  

문제

나는 열린 아코디언 패널을 프로그래밍 방식으로 시도하고 있습니다. 내 코드의 단순화 된 버전은 다음과 같습니다. 첫 번째 창을 False 및 Second Pane을 true로 선택한 첫 번째 창을 설정했지만 브라우저 (FF3)에로드 할 때 첫 번째 창만 열립니다.

var accordionContainer = new dijit.layout.AccordionContainer().placeAt("test");
var accordPane = new dijit.layout.ContentPane({"title": "test", "content":"hello"});
var accordPane2 = new dijit.layout.ContentPane({"title": "test1", "content":"hello1"});
accordionContainer.addChild(accordPane);
accordionContainer.addChild(accordPane2, 1);
accordPane.startup();
accordPane2.startup();
//accordionContainer.selectChild(accordPane2);
accordionContainer.startup();
accordPane.selected = false;
accordPane2.selected = true;
도움이 되었습니까?

해결책

당신은 다음과 같이 할 수 있습니다 :

accordionContainer.selectChild( accordPane2 );

dojo 1.3을 사용하고 있다고 가정합니다.

dijit.layout.AccordionContainer 서브 클래스입니다 dijit.layout.StackContainer, 가지고 있는데 selectChild 한정된.

나는 a를 설정했다 이 코드가 작동하는 데모 페이지

당신이 전화했다면 selectChild ~ 전에 startup, 위젯이 '완전한'상태가 아니기 때문에 보았던 오류가 발생할 수 있습니다. (죄송합니다. 원본 답변을 게시하기 전에 Commneted Out Code를 놓쳤습니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top