Comment déterminer quel dijit.layout.AccordionPane est sélectionné
-
26-09-2019 - |
Question
J'ai essayé d'utiliser « dijit.layout.AccordionPane.selected » pour déterminer si une AccordionPane donnée est mise au point (sélectionné). Cependant, la propriété AccordionPane.selected sera réglé sur « True » une fois que le AccordionPane est sélectionné et reste AccordionPane.selected comme « True » même d'autres dijit.layout.AccordionPane est sélectionné. En d'autres termes, si j'ai 3 AccordionPanes, après avoir cliqué sur tous les trois d'entre eux, AccordionPane.selected propriété pour tous les trois d'entre eux sont « True » maintenant. Est-ce un bug, ou il y a d'autres façons de déterminer qui AccordionPane est actuellement sélectionné (mise au point)? Merci à l'avance!
David
La solution
Vous devez utiliser le dijit.layout.AccordionContainer
qui contient tous ces trois dijit.layout.AccordionPane
afin de déterminer lequel est actuellement sélectionné.
Vous pouvez utiliser la dijit.layout.AccordionContainer
propriété de selectedChildWidget
pour obtenir dijit.layout.AccordionPane
sélectionné.
Autres conseils
AccordionPane
s sont enveloppés dans un AccordionContainer
. Le AccordionContainer
étend StackContainer
qui utilise pub sous canal de communication Dojo afficher lorsqu'un panneau a été sélectionné. Abonnez-vous au sujet [widgetId]-selectChild
pour être averti chaque fois qu'un nouveau volet est sélectionné. [widgetId]
est le widget ID de l'élément de conteneur.
dojo.subscribe("[widgetId]-selectChild", function(pane){
console.log("A new pane was selected:", pane);
});