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

War es hilfreich?

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

AccordionPanes 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);
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top