Quelle est la meilleure façon d'ouvrir un programme panneau intérieur Dijit accordéon Container

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

  •  19-09-2019
  •  | 
  •  

Question

Je suis en train d'accordéon vitres ouvertes et fermer programatically. Voici la version simplifiée de mon code. Même si je mets le premier volet est sélectionné pour faux et et le second volet est sélectionné sur true, seul le premier volet s'ouvre quand il charge sur le navigateur (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;
Était-ce utile?

La solution

Vous pouvez le faire comme ceci:

accordionContainer.selectChild( accordPane2 );

En supposant que vous utilisez 1.3 dojo.

dijit.layout.AccordionContainer est une sous-classe de dijit.layout.StackContainer, qui a selectChild défini.

Je mis en place une démo page où vous pouvez voir ce code en action

Si vous appeliez selectChild avant startup, qui pourrait provoquer l'erreur que vous voyez depuis le widget n'a pas été dans un état « complet ». (Désolé, a raté le code commneted avant que j'ai posté réponse originale)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top