Какой лучший способ программно открыть панель внутри Dijit accordionContainerer
-
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
определенный.
Я настроил демо -страница, где вы можете увидеть этот код в действии
Если бы вы звонили selectChild
до startup
, Это может вызвать ошибку, которую вы видели, так как виджет не был в «полном» состоянии. (Извините, пропустил код Commande Out, прежде чем я опубликовал оригинальный ответ)