Was ist der beste Weg, um einen Bereich im Dijit AccordionContainer programmatisch zu öffnen

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

  •  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;
War es hilfreich?

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)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top