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;
Foi útil?

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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top