2010-07-27 9 views
6

Ho visto questa domanda posta diverse volte ma non ho visto alcuna risposta.contenuto che scompare quando si utilizza jquery slideToggle in IE7

Ho un ul che sto espandendo e comprimendo usando slideToggle() con jquery. Il codice è semplice:

$('#leftMenu li a.moreLess').click(function() { 
    $(this).next().slideToggle('normal'); 
}); 

Con marcatura di:

<a class="moreLess">Click here to see more</a> 
<ul> 
    <li>something</li> 
    <li>something else</li> 
    ... 
</ul> 

Ho un pulsante con una classe di .moreLess e quando si fa clic l'elenco che segue si dovrebbe espandere o comprimere. Per qualche ragione in IE 7 tutto il contenuto sta scomparendo una volta che l'elenco è completamente in espansione. Quando crolla, il contenuto viene visualizzato nuovamente finché l'elenco non è completamente chiuso.

Non sono sicuro se si tratta di qualcosa di correlato CSS, ma speravo che qualcuno potesse averlo incontrato prima. Grazie in anticipo per il vostro aiuto!

+0

possibile duplicato del [jQuery slideDown in IE9 - contenuto scompare dopo l'animazione termina] (http://stackoverflow.com/questions/4087719/jquery-slidedown-in-ie9-content-disappears-after-animation-finishes) – sth

risposta

10

FYI il problema era con il posizionamento CSS sugli elementi all'interno dell'UL che viene attivato. Una volta rimosso qualsiasi posizionamento relativo e/o assoluto su quegli elementi, il problema non si verificava più.

+1

Grazie mille per essere tornato e aver risposto alla tua stessa domanda, ho incontrato lo stesso identico problema e questo lo ha risolto per me. –

+1

Sembra anche essere un problema quando si ha postizione: relativo | assoluto per la cosa che viene attivata (non solo il contenuto). Nel mio caso era un div. La correzione di Phenom (set zoom: 1 proprietà) ha risolto il mio problema. – djangodude

18

mettere un zoom: 1 proprietà. funziona con posizione: relativa.

+0

ha funzionato per me! a volte essere così cattivo in realtà è una buona cosa, dato che ci sono tonnellate di documentazione là fuori su come risolverlo. molto meglio che essere semplicemente di temperamento –

4

put overflow: hidden; per il div in cui si ha il contenuto, che viene incasinato. Lavora per me, ma comunque è e IE bug ...

0

nel mio caso il contenuto caricato con slideToggle è stato "spostato" la creazione di un calo del 2 spazio vuoto (solo in IE7)

ho risolto con questo css:

form { 
    margin: 0; 
}