Ponowne numerowanie LI po ukryciu i pokazaniu

0

Na stronie http://marooned.4programmers.net/wrazenia.html napisałem sobie mini skrypt pokazujący/chowający niektóre elementy LI:

<script type="text/javascript">
//<![CDATA[
function showhide()
{
    lis = document.getElementsByTagName('li');
    for (i=0; i<lis.length; i++)
        if (lis[i].getAttribute('class') == 'done' || lis[i].getAttribute('className') == 'done')
            lis[i].style.display = lis[i].style.display == 'none' ? 'block' : 'none';
}
//]]>
</script>

Na IE działa elegancko, ale na FF i Operze po ukryciu i pokazaniu jest taki efekt:

przed:

  1. pozycja 1
  2. pozycja 2 [ta się schowa]
  3. pozycja 3

chowamy/pokazujemy:

  1. pozycja 1
    pozycja 2 [ta się schowa]
    2. pozycja 3

czyli listy nie są ponownie ponumerowane poprawnie - jak to naprawić?

0

Strzelam: nie display: block tylko display: list-item ustawiać dla tych ponownie pokazywanych powinieneś.
Nie stestowałem, bo mi DOM Inspector współpracy teraz odmówił.

0

Albo samo ''[puste] (testowane).

0

no bo "[puste] to wartość domyślna a wartość domyślna to właśnie list-item dla li

0

a może nie display tylko visibility? a moze position:absolute i gdzieś w kosmos?

0

list-item załatwiło sprawę - przyznam, że zwyczajnie tego nie wiedziałem :)

tomkiewicz - position? a co ma przesunięcie z wyłączeniem numerowania? ;-)

dzięki panowie

0

czasem jak nic nie pomaga, to można spróbować, zamiast ukrywać, przesunąć gdzieś, gdzie elementu nie widać - ale trochę nieelegenckie ;)

0

no ale co to da - zostanie luka i dziura w numerowaniu

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0