2010-05-13 8 views
1

"dijit.layout.AccordionPane.selected"를 사용하여 주어진 AccordionPane에 포커스 (선택됨)가 있는지 확인하려고했습니다. 그러나 AccordionPane.selected 속성은 AccordionPane이 선택되면 "True"로 설정되고 다른 dijit.layout.AccordionPane이 선택된 경우에도 AccordionPane.selected는 "True"로 유지됩니다. 즉, AccordionPanes가 3 개있는 경우, 그 중 3 개를 모두 클릭하면 AccordionPane.selected 속성이 모두 3 개가 "True"가됩니다. 이것은 버그입니까, 아니면 현재 어떤 AccordionPane이 선택 (포커스)되어 있는지 확인할 수있는 다른 방법이 있습니까? 미리 감사드립니다.어떤 dijit.layout.AccordionPane이 현재 선택되어 있는지 확인하는 방법

다윗은

답변

2

당신은 포함 dijit.layout.AccordionContainer를 사용해야 세 dijit.layout.AccordionPane 현재 선택된 어느 하나를 결정하기 위해 모든.

dijit.layout.AccordionContainer 속성 selectedChildWidget을 사용하면 현재 선택된 dijit.layout.AccordionPane을 사용할 수 있습니다.

+0

감사합니다. AccordionContainer를 사용했지만 확인을 위해 selectedChildWidget 속성을 사용하지 않았습니다. –

1

AccordionPaneAccordionContainer으로 싸여 있습니다. AccordionContainerStackContainer which uses Dojo's pub-sub communication channel을 확장하여 창을 선택했을 때 광고합니다. 새로운 창을 선택할 때마다 알림을 받으려면 주제 [widgetId]-selectChild에 가입하십시오. [widgetId]은 컨테이너 요소의 위젯 ID입니다.

dojo.subscribe("[widgetId]-selectChild", function(pane){ 
    console.log("A new pane was selected:", pane); 
}); 
+0

답변 해 주셔서 감사합니다. 귀하의 제안은 그것이 선택되었을 때 통보를받는 동안, 나는 현재 어느 것이 선택되고 있는지 알아 내려고 노력하고 있었고, 나는 onFocus()를 사용하여 이것을 할 수 있다고 생각합니다. 건배! –