Как определить, какой dijit.layout.AccordionPane в настоящее время выбран

Я пытался использовать "dijit.layout.AccordionPane.selected", чтобы определить, находится ли какой-либо данный AccordionPane в фокусе (выбран). Однако свойство AccordionPane.selected будет установлено равным "True" после выбора AccordionPane, а AccordionPane.selected остается равным "True", даже если выбрано другое dijit.layout.AccordionPane. Другими словами, если у меня есть 3 AccordionPanes, после того, как я нажму на все 3 из них, свойство AccordionPane.selected для всех 3 из них теперь будет "True". Это ошибка, или есть другие способы определить, какая AccordionPane в настоящее время выбирается (в фокусе)? Заранее спасибо!

Дэвид

2 ответа

Решение

Вы должны использовать dijit.layout.AccordionContainer который содержит все эти три dijit.layout.AccordionPane чтобы определить, какой из них выбран в данный момент.

Ты можешь использовать dijit.layout.AccordionContainerсобственность selectedChildWidget чтобы выбрать текущий dijit.layout.AccordionPane,

AccordionPaneS обернуты в AccordionContainer, AccordionContainer продолжается StackContainer который использует канал связи паб-суб Dojo для рекламы, когда была выбрана панель. Подписаться на тему [widgetId]-selectChild получать уведомления каждый раз, когда выбирается новая панель. [widgetId] является идентификатором виджета элемента контейнера.

dojo.subscribe("[widgetId]-selectChild", function(pane){
    console.log("A new pane was selected:", pane);
});
Другие вопросы по тегам