2010-07-27 9 views
6

Widziałem to pytanie kilka razy, ale nie widziałem żadnych odpowiedzi.zawartość znika podczas używania jquery slideToggle w IE7

Mam ul, który rozwijam i zwijanie przy użyciu slideToggle() z jquery. Kod jest prosty:

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

ze znacznikami z:

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

mam przycisku z klasą .moreLess i kiedy kliknięciu listy poniżej należy rozwinąć lub zwinąć. Z jakiegoś powodu w IE 7 cała zawartość znika, gdy lista jest w pełni rozwinięta. Po zwinięciu zawartość pojawia się ponownie, dopóki lista nie zostanie całkowicie zamknięta.

Nie jestem pewien, czy jest to coś związanego z CSS, ale miałem nadzieję, że ktoś mógł już na to wpaść. Z góry dziękujemy za pomoc!

+0

możliwe duplikat [jQuery slideDown w IE9 - zawartość zanika po zakończeniu animacji] (http://stackoverflow.com/questions/4087719/jquery-slidedown-in-ie9-content-disappears-after-animation-finishes) – sth

Odpowiedz

10

FYI Problem polegał na pozycjonowaniu CSS na elementach wewnątrz UL, które są przełączane. Kiedy usunąłem względne i/lub absolutne pozycjonowanie tych elementów, problem już się nie zdarzył.

+1

Dziękuję bardzo za to, że wróciłeś i odpowiedziałeś na własne pytanie, wpadł na ten sam problem i to naprawiło to dla mnie. –

+1

Wydaje się również, że problem występuje, gdy masz pozycję: względną | absolutną dla rzeczy, która jest przełączana (nie tylko zawartość). W moim przypadku był to div. Poprawiona przez Phenom (set zoom: 1 property) rozwiązała mój problem. – djangodude

18

umieścić zoom: 1 nieruchomości. działa z pozycją: względna.

+0

Pracowałem dla mnie! czasami IE jest tak źle, tak naprawdę jest dobrą rzeczą, ponieważ istnieje mnóstwo dokumentacji o tym, jak go rozwiązać. o wiele lepiej niż po prostu być temperamentem –

4

Położyć overflow: hidden; dla div, w którym masz zawartość, która jest popsuta. Pracuje dla mnie, ale to i IE bug ...

0

w moim przypadku zawartość załadowana slideToggle była „przesunięta” w dół tworząc pustą przestrzeń 2 (tylko w IE7)

I rozwiązać ten css:

form { 
    margin: 0; 
} 
Powiązane problemy