2012-06-14 12 views
69

Sto usando JQuery Accordion. Ho questa pagina qui: http://www.hauppauge.com/site/support/support_colossus.html#tabs-6JQuery Accordion Auto Height issue

Quello che succede è che l'altezza automatica impiega del tempo per caricare, prima che carichi ci sia molto spazio bianco sotto il contenuto. Quando finalmente carica, l'altezza si espande a più lungo, quindi si aggancia all'altezza corretta del contenuto. C'è un modo per questo di essere senza soluzione di continuità? Voglio solo essere in grado di fare clic su una scheda Fisarmonica e di espanderla senza problemi all'altezza esatta del contenuto.

Aggiornamento 2014/08/08:

Usa heightStyle: "content" se si sta utilizzando version 1.9 and higher (Tarun's risposta)

Usa autoHeight: false per 1.8 and lower (risposta di iappwebdev)

+0

Si sta applicando l'altezza a '274' da qualche parte. prova a rimuoverlo o almeno a ridurlo. – Imdad

+0

Ho appena fatto una ricerca per questo e non ho idea di dove ho questo. Come lo vedi? Grazie! – Kim

+0

Ispeziona con Firebug. l'altezza di default è '274' non dovrebbe essere più di tanto – Imdad

risposta

53

Allora perché non hai appena impostato autoheight su falso?

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

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

EDIT

Guardando il tuo commento:

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

Si sono inizializzazione la fisarmonica e quindi si aggiunge più opzioni per esso. Perché lo stai facendo? Il valore predefinito per autoHeight è true, quindi ogni scheda ottiene un'altezza fissa. Mettere tutte le opzioni in una sola chiamata:

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



EDIT

quanto riguarda la tua seconda commento:

Dai un'occhiata alla http://jqueryui.com/demos/accordion/#option-header. È possibile vedere che l'opzione h3 è impostata per impostazione predefinita, quindi non è necessario impostarla nella chiamata.

E si ottiene una risposta alla tua domanda qui: JQuery accordion doesn't work without h3 tags.

È molto importante utilizzare l'API jQuery per migliorare le tue conoscenze. Per API jQuery andare a http://api.jquery.com/ e per l'interfaccia utente di jQuery andare a http://jqueryui.com/demos/. Se avete altre domande, non esitate a chiedere dopo il che avete provato a risolvere il vostro problema e dopo il avete fatto qualche ricerca.

Se tutto questo ha risposto alla tua domanda, contrassegnala come risposta corretta.

+0

ho fatto, questo è quello che ho:. \t \t \t \t // Fisarmonica \t \t \t \t $ ("# fisarmonica") accordion ({header:" h3 "}); \t \t \t \t $ ("# fisarmonica"). Fisarmonica ({collapsible: true}); . \t \t \t \t $ ("# fisarmonica") accordion ({ \t \t \t \t autoHeight: false, \t \t \t \t navigazione: true}); – Kim

+0

Ha funzionato! Grazie mille! Come puoi dire sto imparando. Apprezzo molto il tuo aiuto con questo! Mi stava facendo impazzire. Sapresti perché l'intestazione: "h3" è necessaria? Non funzionerà correttamente senza di esso. Grazie ancora! – Kim

+0

Modificherò la mia risposta per renderla più leggibile. – iappwebdev

139

si dovrebbe usare

$("#accordion").accordion({ 

heightStyle: "content" 

}); 

Sarà impostare l'altezza in base ai tuoi contenuti. e non utilizzerà lo spazio vuoto come altezza.

+8

pollice in su. breve semplice e meglio di tutti, funziona :) – Evorlor

+13

Questa è sicuramente la risposta corretta! – saiyancoder

+5

Grazie, ho provato 'autoHeight: false' ... ma niente, questo ha fatto il trucco – Pierre

0

Questo ha funzionato per me.

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

heightStyle: "content" 

}); 

Questo è il lavoro in nuova versione sua ha lavorato per me !!!

0

Se non funziona così lontano, basta ridimensionare il jQuery Accordion contentElement - è chiamato data-content per impostazione predefinita, a meno che non si è configurato in modo diverso:

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

Questo potrebbe anche funzionare se si vuole ridimensionare la Fisarmonica dopo la vostra i dati sono caricati dinamicamente.