2010-07-27 15 views
6

He visto esta pregunta varias veces pero no he visto ninguna respuesta.contenido que desaparece al usar jquery slideToggle en IE7

Tengo un ul que estoy expandiendo y colapsando usando slideToggle() con jquery. El código es simple:

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

con el formato de:

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

tengo un botón con una clase de .moreLess y cuando se hace clic en la siguiente lista se debería expandir o contraer. Por alguna razón, en IE 7 todo el contenido está desapareciendo una vez que la lista se expande por completo. Cuando se produce un colapso, el contenido aparece nuevamente hasta que la lista se cierra por completo.

No estoy seguro de si esto es algo relacionado con CSS, pero esperaba que alguien se hubiera topado con esto antes. ¡Gracias de antemano por su ayuda!

+0

posible duplicado de [jQuery slideDown en IE9 - contenido desaparece después de la animación termina] (http://stackoverflow.com/questions/4087719/jquery-slidedown-in-ie9-content-disappears-after-animation-finishes) – sth

Respuesta

10

FYI el problema fue con el posicionamiento de CSS en los elementos dentro de la UL que se está alternando. Una vez que eliminé cualquier posicionamiento relativo y/o absoluto en esos elementos, el problema ya no ocurrió.

+1

Muchas gracias por regresar y responder tu propia pregunta, encontré el mismo problema y esto lo solucionó. –

+1

También parece ser un problema cuando tienes postition: relative | absolute para lo que se está alternando (no solo los contenidos). En mi caso fue un div. La solución de Phenom (establecer zoom: 1 propiedad) resolvió mi problema. – djangodude

18

poner un zoom: 1 propiedad. funciona con position: relative.

+0

¡Trabajó para mí! a veces IE es tan malo que es tan bueno, ya que hay toneladas de documentación sobre cómo resolverlo. mucho mejor que solo ser temperamental –

4

pon overflow: hidden; para el div en el que tienes el contenido que se ensucia. Que funciona para mí, pero aún así es y fallo de IE ...

0

en mi caso el contenido cargado con slideToggle fue "desplazada" la creación de un 2 espacio vacío (sólo en IE7)

he resuelto con este CSS:

form { 
    margin: 0; 
} 
Cuestiones relacionadas