Какой лучший способ программно открыть панель внутри Dijit accordionContainerer

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

  •  19-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь программно открыть и закрывать аккордеонные панели. Вот упрощенная версия моего кода. Несмотря на то, что я установил первую панель, выбранную в False и и Second Pane, выбранную True, только первый панель открывается, когда он загружается в браузер (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;
Это было полезно?

Решение

Вы можете сделать это так:

accordionContainer.selectChild( accordPane2 );

Предполагая, что вы используете Dojo 1.3.

dijit.layout.AccordionContainer это подкласс dijit.layout.StackContainer, который имеет selectChild определенный.

Я настроил демо -страница, где вы можете увидеть этот код в действии

Если бы вы звонили selectChild до startup, Это может вызвать ошибку, которую вы видели, так как виджет не был в «полном» состоянии. (Извините, пропустил код Commande Out, прежде чем я опубликовал оригинальный ответ)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top