Was ist der beste Weg, um einen Bereich im Dijit AccordionContainer programmatisch zu öffnen
-
19-09-2019 - |
Frage
Ich probiere programmatisch Open & Schließe Akkordeonpane. Hier ist die vereinfachte Version meines Codes. Obwohl ich die erste Scheibe auf false und und zweite Scheibe auf True ausgewählt habe, öffnet sich nur die erste Scheibe, wenn er den Browser lädt (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;
Lösung
Sie können es so machen:
accordionContainer.selectChild( accordPane2 );
Angenommen, Sie verwenden Dojo 1.3.
dijit.layout.AccordionContainer
ist eine Unterklasse von dijit.layout.StackContainer
, was hat selectChild
definiert.
Ich habe a eingerichtet Demo -Seite, auf der Sie diesen Code in Aktion sehen können
Wenn Sie angerufen haben selectChild
Vor startup
, Dies könnte den Fehler verursachen, den Sie gesehen haben, da das Widget nicht in einem „vollständigen“ Zustand war. (Entschuldigung, verpasste den Code mit dem CommNeted, bevor ich die ursprüngliche Antwort gepostet habe)