Dojo AccordianContainer selectChild

Чтобы получить информацию о дочернем элементе (из аккордеонного контейнера), на который нажимает пользователь, я подписался на эту тему - "-selectChild". Работает нормально, но позже я хотел, чтобы все панели содержимого были свернуты по умолчанию в аккордовом контейнере, я искал в интернете, не смог его найти, но попробовал, вызвав selectChild(0) для аккордового контейнера. Это работало, но после добавления этой строки (selectChild(0)) я получаю сообщение об ошибке, когда пользователь нажимает на любую панель

Ошибка, которую я получаю:

Uncaught TypeError: Невозможно прочитать свойство 'containerNode' из неопределенного

Код (не полный код)

topic.subscribe("accordianContainerId-selectChild", function(pane){
console.log('user selected pane:'+pane)
});


aContainer = new AccordionContainer({id: 'accordianContainerId', "isLayoutContainer": true,style:"height: 100%"});
aContainer.addChild(new ContentPane({ 
            id: 'test',
            title: 'test',
            content: "<div>test</div>", doLayout: true
            }));
aContainer.placeAt("markup");
aContainer.startup();
aContainer.selectChild(0);

1 ответ

Решение

Вам нужно передать виджет дочерней панели, чтобы выбрать ребенка вместо числа. Вы делаете трюк для достижения "не выбранная панель", но accordionContainer сохранит текущую выбранную панель, чтобы в следующий раз она могла свернуть эту панель, пока вы выбираете другую панель. Теперь, конечно, для текущей выбранной панели "0" это фактически неопределенная панель, без свойства containerNode.

Вы не можете свернуть все панели для AccordionContainer, вместо этого вы можете попробовать использовать TitleGroup,

см. dojox.widget.TitleGroup

Другие вопросы по тегам