Qual é a melhor maneira de abrir um painel de acordo com o Dijit acordeão
-
19-09-2019 - |
Pergunta
Estou tentando os painéis de acordeão aberto e fechado programaticamente. Aqui está a versão simplificada do meu código. Mesmo que eu defina o primeiro painel selecionado para False e o Second Pane é selecionado para True, apenas o primeiro painel abre quando ele carrega no navegador (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;
Solução
Você pode fazer assim:
accordionContainer.selectChild( accordPane2 );
Supondo que você esteja usando o dojo 1.3.
dijit.layout.AccordionContainer
é uma subclasse de dijit.layout.StackContainer
, que tem selectChild
definiram.
Eu configurei um página de demonstração onde você pode ver este código em ação
Se você estava ligando selectChild
antes da startup
, isso poderia causar o erro que você estava vendo, já que o widget não estava em um estado "completo". (Desculpe, perdi o código com base antes de postar a resposta original)