Come determinare quale dijit.layout.AccordionPane è attualmente selezionato
-
26-09-2019 - |
Domanda
Ho cercato di usare "dijit.layout.AccordionPane.selected" per determinare se un dato AccordionPane è a fuoco (selezionato). Tuttavia, la proprietà AccordionPane.selected sarà impostata su soggiorni "veri" dopo aver selezionato l'AccordionPane, e AccordionPane.selected come si seleziona "True", anche altri dijit.layout.AccordionPane. Quindi, in altre parole, se ho 3 AccordionPanes, dopo aver cliccato su tutti e 3 di loro, AccordionPane.selected proprietà per tutti e 3 di loro sono "True" ora. Questo è un bug, o v'è altro modo per determinare quali AccordionPane è attualmente in corso di selezione (a fuoco)? Grazie in anticipo!
David
Soluzione
Si dovrebbe usare la dijit.layout.AccordionContainer
che contiene tutti questi tre dijit.layout.AccordionPane
per determinare quella che è attualmente selezionato.
È possibile utilizzare dijit.layout.AccordionContainer
proprietà di selectedChildWidget
per ottenere corrente dijit.layout.AccordionPane
selezionato.
Altri suggerimenti
AccordionPane
s sono avvolti in un AccordionContainer
. Il AccordionContainer
estende StackContainer
che utilizza di Dojo pub-sub canale di comunicazione per pubblicizzare quando è stato selezionato un riquadro. Sottoscrivi [widgetId]-selectChild
argomento a ricevere la notifica ogni volta che viene selezionato un nuovo riquadro. [widgetId]
è l'ID widget di dell'elemento contenitore.
dojo.subscribe("[widgetId]-selectChild", function(pane){
console.log("A new pane was selected:", pane);
});