Frage

Ich kann nicht herausfinden, wie die Accordion seiner Ziehharmonika Scheibe so auf Auto auf der Satzhöhe zu sagen, dass die Höhe der Scheibe dynamisch je nach ihrem Inhalt.

Im folgenden Code Ich füge zwei Scheiben zu einem Accordion. Man hat Höhe von 10px und ein anderer hat 90px aber in beiden Fällen ist die Höhe des Akkordeons Scheibe zu 10px berechnet. Sieht aus wie es ist immer die Höhe der ersten Einnahme.

var accordionContainer = new dijit.layout.AccordionContainer({'id':'accContainer'}).placeAt("test");
var accordPane = new dijit.layout.ContentPane({"title": "test", "content":"<div style='height:10px'>sdfsdfsdf</div&gt;"});
var accordPane2 = new dijit.layout.ContentPane({"title": "test1", "content":"<div style='height:90px'>sdfsdfsdf</div>"});

accordionContainer.addChild(accordPane);
accordionContainer.addChild(accordPane2, 1);
accordPane.startup();
accordPane2.startup();
accordionContainer.startup();
accordionContainer.selectChild(accordPane2);

Ich bin mit Dojo 1.3.2

War es hilfreich?

Lösung 2

I overrode die _getTargetHeight Funktion von dijit.layout.AccordionContainer und immer wieder zurückkehrt 'auto' für die Höhe. Animation von Schiebescheiben nicht funktioniert richtig, aber es ist nicht so bemerkbar.

_getTargetHeight: function(/* Node */ node){
// summary:
//For the given node, returns the height that should be
//set to achieve our vertical space (subtract any padding
//we may have).
//This is used by the animations.

//var cs = dojo.getComputedStyle(node);
//return Math.max(this._verticalSpace - dojo._getPadBorderExtents(node, cs).h, 0);
return 'auto';
}

Andere Tipps

Es ist derzeit nicht möglich. Ich schrieb einen Blog / Beispielcode zu erklären, warum und wie eine Gruppe von TitlePane der erzeugen, die ihre natürlichen Höhe erweitern (und nicht der Höhe des Behälters für die Accordion):

http: // www. sitepen.com/blog/2008/10/21/quick-fixes-and-dojo-support/

Es erfordert es, eine einzige TitleGroup Widget (custom, Code in Blog) und TitlePane der Innenseite platzieren. Jeder verhält sie meist wie ein AccordionPane (mit title = „“ Attributen, href = „“ Ladefähigkeiten, usw.) und die Delegierten Titel Klicks, um den offenen / geschlossenen Zustand der Geschwister zu verwalten.

versuchen, die Dimensionen auf dem Akkordeon Container selbst auf eine Größe einstellen, die groß genug ist, Ihre Inhalte und den notwendigen Titel Scheiben zu halten, z.

#accContainer{
  height: 120px;
  width: 200px;
}

Der Start () Aufruf auf den Behälter soll das Kind Scheiben für Sie startet.

Jetzt können Sie auch nur dijit.TitlePanes verwenden ohne Behälter überhaupt. Sie können open: false passieren, wenn Sie die Scheiben instanziiert sie weg geschlossen zu starten. Ich denke, dass sie in einem dojox.widget.TitleGroup umschließt das Verhalten von offenen zu einer Zeit mit 1 emulieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top