Cosa è il modo migliore per aprire programmazione un pannello interno della fisarmonica Dijit Container

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

  •  19-09-2019
  •  | 
  •  

Domanda

sto cercando aperti e chiudere i riquadri fisarmonica programatically. Ecco la versione semplificata del mio codice. Anche se ho impostato la prima del riquadro selezionato per falso e ed il secondo riquadro di selezionato su true, solo il primo riquadro si apre quando viene caricato sul browser (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;
È stato utile?

Soluzione

Si può fare in questo modo:

accordionContainer.selectChild( accordPane2 );

Supponendo che si sta utilizzando dojo 1.3.

dijit.layout.AccordionContainer è una sottoclasse di dijit.layout.StackContainer, che ha selectChild definito.

Ho messo su un href="http://jsbin.com/elimo" rel="noreferrer"> demo pagina

Se stavi chiamando selectChild prima startup, che potrebbe causare l'errore si stava vedendo in quanto il widget non era in uno stato 'completa'. (Scusate, perse il codice commneted prima ho postato la risposta originale)

scroll top