Cómo determinar qué dijit.layout.AccordionPane está seleccionado actualmente
-
26-09-2019 - |
Pregunta
Me trató de usar "dijit.layout.AccordionPane.selected" para determinar si alguno AccordionPane dada está en el foco (seleccionado). Sin embargo, la propiedad AccordionPane.selected se establece en "true" una vez seleccionado el AccordionPane y AccordionPane.selected estancias como se selecciona "True" incluso otra dijit.layout.AccordionPane. Así, en otras palabras, si tengo 3 AccordionPanes, después hice clic en todos los 3 de ellos, AccordionPane.selected propiedad para todos 3 de ellos son "verdaderos" ahora. Es esto un error, o hay otras maneras de determinar cual AccordionPane se está seleccionando actualmente (en el foco)? Gracias de antemano!
David
Solución
Se debe utilizar la dijit.layout.AccordionContainer
que contiene todos estos tres dijit.layout.AccordionPane
para determinar cuál está seleccionado actualmente.
Puede utilizar la propiedad de dijit.layout.AccordionContainer
selectedChildWidget
para obtener dijit.layout.AccordionPane
actual seleccionado.
Otros consejos
AccordionPane
s están envueltos dentro de una AccordionContainer
. El AccordionContainer
extiende StackContainer
que utiliza de Dojo pub-sub canal de comunicación para hacer publicidad cuando se seleccionó un panel. Suscribirse a [widgetId]-selectChild
tema para ser notificado cada vez que se selecciona un nuevo panel. [widgetId]
es el ID de widget de del elemento contenedor.
dojo.subscribe("[widgetId]-selectChild", function(pane){
console.log("A new pane was selected:", pane);
});