Wie zu bestimmen, welche dijit.layout.AccordionPane aktuell ausgewählte
-
26-09-2019 - |
Frage
Ich habe versucht, „dijit.layout.AccordionPane.selected“ zu verwenden, um festzustellen, ob eine gegebene AccordionPane im Fokus ist (ausgewählt). AccordionPane.selected Eigenschaft wird jedoch werden auf „True“, wenn die AccordionPane ausgewählt ist, und AccordionPane.selected Aufenthalte als „True“ auch andere dijit.layout.AccordionPane ausgewählt ist. Also mit anderen Worten, wenn ich 3 AccordionPanes haben, nachdem ich auf allen drei von ihnen angeklickt, AccordionPane.selected Eigenschaft für alle 3 von ihnen sind „True“ jetzt. Ist das ein Bug, oder gibt es andere Möglichkeiten, um festzustellen, welche AccordionPane derzeit (im Fokus) ausgewählt zu werden? Vielen Dank im Voraus!
David
Lösung
Sie sollten die dijit.layout.AccordionContainer
benutzen, die alle diese drei dijit.layout.AccordionPane
enthält, um zu bestimmen, welche zur Zeit ausgewählt ist.
Sie können dijit.layout.AccordionContainer
Eigentum selectedChildWidget
verwenden, um aktuell ausgewählten dijit.layout.AccordionPane
zu erhalten.
Andere Tipps
AccordionPane
s werden innerhalb eines AccordionContainer
gewickelt. Die AccordionContainer
erstreckt StackContainer
die verwendet Dojos pub-sub-Kommunikationskanal zu werben, wenn eine Scheibe ausgewählt wurde. Abonnieren Thema [widgetId]-selectChild
erhalten jedes Mal benachrichtigt, wenn ein neuer Bereich ausgewählt ist. [widgetId]
ist die Widget-ID des Containerelement.
dojo.subscribe("[widgetId]-selectChild", function(pane){
console.log("A new pane was selected:", pane);
});