2009-11-17 11 views
5

Sto tentando di mostrare e nascondere una serie di div utilizzando l'interruttore, slideUp e slideDown. Sono in grado di ottenere il div a slideDown ma non riesco a farlo scorrere in alto. Ho usato questo script senza incidenti prima quindi sono davvero confuso sul motivo per cui questo non funziona. Ho incluso la mia sceneggiatura e il div che sto tentando di mostrare e nascondere.div farà slideDown ma non sarà slideUp

Nota rapida: Quando inserivo un vecchio tag p regolare nel div "veicoli nascosti", funzionava correttamente. Stava mostrando e nascondendo come doveva. Tuttavia, quando ho rimesso il mio tavolo in quel div, non ha funzionato.

<script type="text/javascript"> 
$(document).ready(function() { 
    $(".ShowVehicles").toggle(function() { 
     $(".HiddenVehicles").slideDown(2000); 
     $(this).text("Hide All"); 
    }, function() { 
     $(".HiddenVehicles").slideUp(2000); 
     $(this).text("Show All");     
    }); 
}); 

<div class="HiddenVehicles" style="display:none; width:730px;"> 
    (there will be a giant table in here) 
    </div> 
+1

Ho appena testato il codice in locale e ha funzionato correttamente. Molto probabilmente la tua tabella è fluttuante. Potresti provare ad aggiungere 'position: relative' al tuo div e al tavolo. Qualche possibilità che potresti collegare a una pagina di test dal vivo da qualche parte? Sarebbe più facile eseguire il debug. Correzione –

+2

, Questi erano due suggerimenti non correlati. Se il tuo tavolo non è flottato, prova la posizione: relativa. Se lo è, disattivalo con 'float: none' sul tavolo css. –

+1

Grazie mille! Questo ha funzionato perfettamente. La mia tabella ereditava molto probabilmente una classe float da qualche parte! Grazie ancora! – RachelGatlin

risposta

3

ho postato questo consiglio come un commento, e ha contribuito a risolvere il problema in modo sto inviando di nuovo qui:

Quando animazioni slideUp/slideDown solo il lavoro in un modo, è spesso un bug di posizionamento. L'elemento che si sta animando deve essere impostato su position:relative oppure i figli dell'elemento hanno un float applicato a loro e non forniscono l'altezza dell'elemento principale all'elemento principale.

Vorrei provare ad aggiungere float:none al tavolo. Se ciò non funziona, prova ad aggiungere position:relative allo div#HiddenVehicles.

+0

Grazie per aver catturato @Jason! –

0

Per quelli senza problemi di posizionamento/posizionamento, ho riscontrato che l'aggiornamento da jQuery 1.10 all'1.11 risolveva il problema.

Problemi correlati