2012-06-14 15 views
69

Ich benutze JQuery Akkordeon. Ich habe diese Seite hier: http://www.hauppauge.com/site/support/support_colossus.html#tabs-6JQuery Akkordeon Auto Höhe Ausgabe

Was passiert, ist die Auto-Höhe dauert einige Zeit zu laden, bevor es lädt, gibt es viel Leerraum unter dem Inhalt. Wenn es schließlich geladen wird, wird die Höhe länger und dann bis zur richtigen Höhe des Inhalts hochgezogen. Gibt es dafür einen Weg, nahtlos zu sein? Ich möchte einfach nur auf einen Akkordeon-Tab klicken und ihn nahtlos auf die exakte Höhe des Inhalts erweitern lassen.

-Update 2014.08.08:

Verwenden heightStyle: "content" wenn Sie mit version 1.9 and higher (Tarun's Antwort)

Verwenden autoHeight: false für 1.8 and lower (iappwebdev Antwort)

+0

Sie wenden Höhe auf '274' irgendwo an. versuche es zu entfernen oder zumindest zu reduzieren. – Imdad

+0

Ich habe gerade eine Suche nach diesem und ich habe keine Ahnung, wo ich das habe. Wie siehst du das? Danke! – Kim

+0

Untersuchen Sie mit Firebug. Die Standardhöhe ist '274' es nicht so viel sein sollte – Imdad

Antwort

53

So tun, warum nicht Sie haben autoheight auf false gesetzt?

$(".selector").accordion({ autoHeight: false }); 

http://jqueryui.com/demos/accordion/#option-autoHeight

EDIT

an Ihrem Kommentar Suche:

// Accordion 
$("#accordion").accordion({ header: "h3" }); 
$("#accordion").accordion({ collapsible: true }); 
$("#accordion").accordion({ autoHeight: false, navigation: true }); 

Sie sind das Akkordeon Initialisierung und Sie dann weitergeben, um es hinzuzufügen. warum machen Sie das? Der Standardwert für autoHeight ist true, daher erhält jede Registerkarte eine feste Höhe. Setzen Sie alle Optionen in einem Aufruf:

// Accordion 
$("#accordion").accordion({ 
    header: "h3", 
    collapsible: true, 
    autoHeight: false, 
    navigation: true 
}); 



EDIT

Bezüglich Ihrer zweiten Kommentar:

einen Blick auf http://jqueryui.com/demos/accordion/#option-header haben. Sie können sehen, dass die Option h3 standardmäßig eingestellt ist, so dass Sie sie nicht in Ihrem Anruf einstellen müssen.

Und Sie erhalten eine Antwort auf Ihre Frage hier: JQuery accordion doesn't work without h3 tags.

Es ist ziemlich wichtig, durch jQuery API zu gehen, um Ihr Wissen zu verbessern. Wechseln Sie für die jQuery-API zu http://api.jquery.com/ und für jQuery UI zu http://jqueryui.com/demos/. Wenn Sie weitere Fragen haben, zögern Sie nicht zu fragen nach Sie versucht, um Ihr Problem zu lösen und nach haben Sie etwas Forschung.

Wenn all dies Ihre Frage beantwortet, bitte markieren Sie es als richtige Antwort.

+0

ich, das ist, was ich habe. \t \t \t \t // Akkordeon \t \t \t \t $ ("# Akkordeon") Akkordeon ({header:" h3 "}); \t \t \t \t $ ("# Akkordeon"). Akkordeon ({collapsible: true}); . \t \t \t \t $ ("# Akkordeon") Akkordeon ({ \t \t \t \t Autoheight: false, \t \t \t \t Navigation: true}); – Kim

+0

Das hat funktioniert! Ich danke dir sehr! Wie du sehen kannst, lerne ich. Ich schätze wirklich, dass Sie dabei helfen! Es hat mich verrückt gemacht. Würdest du zufällig wissen, warum der Header: "h3" benötigt wird? Es wird nicht ohne es richtig funktionieren. Danke noch einmal! – Kim

+0

Ich bearbeite meine Antwort, um sie lesbarer zu machen. – iappwebdev

139

sollten Sie

$("#accordion").accordion({ 

heightStyle: "content" 

}); 

Es Höhe auf Ihre Inhalte entsprechend gesetzt verwenden. und wird keinen Leerraum als Höhe verwenden.

+8

Daumen hoch. kurz einfach und am besten funktioniert es :) – Evorlor

+13

Das ist definitiv die richtige Antwort! – saiyancoder

+5

Vielen Dank, habe versucht 'autoHeight: false' ... aber nichts, das hat den Trick – Pierre

0

Das funktionierte für mich.

$(".accordion").accordion({ 
autoHeight: false, 
collapsible: true, 
navigation: true 
}); 
9
$("#accordion").accordion({ 

heightStyle: "content" 

}); 

Dies wird in der neuen Version seine für mich arbeiten gearbeitet !!!

0

Wenn bisher nichts funktioniert, die Größe nur die jQuery Akkordeon contentElement - es ist standardmäßig data-content genannt wird, sofern Sie es nicht anders konfiguriert:

$('.accordion').find('[data-content]').resize(); 

Dies würde auch funktionieren, wenn Sie das Akkordeon ändern möchten nach Ihrem Daten werden dynamisch geladen.