Как определить, какой dijit.layout.AccordionPane в настоящее время выбран - PullRequest
1 голос
/ 13 мая 2010

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

David

Ответы [ 2 ]

2 голосов
/ 13 мая 2010

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

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

1 голос
/ 13 мая 2010

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

dojo.subscribe("[widgetId]-selectChild", function(pane){
    console.log("A new pane was selected:", pane);
});
...