[JS] Expand & Collapse problee

Pagina: 1
Acties:

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 28-02 19:26
Als ik het volgende script gebruik gaat Mozilla gekke dingen doen:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<html>
<head>
<script type="text/javascript">
function showMenu(DivID) {
    if(document.getElementById) {
        obj=document.getElementById(DivID);
    }
    else if(document.all) {
        obj=document.all[DivID];
    }
    obj.style.display=(obj.style.display=="block")?"none":"block";
}
</script>
</head>

<body>
<table border="1">
    <tr>
        <td>
            <a href="javascript:void(null);" onclick="showMenu('C1');">Uitgeklapt en inklappen</a>
        </td>
    </tr>
    <tr id="C1" style="display: none;">
        <td>
            Zichtbaar, als je dit niet ziet, is het onzichtbaar :D
        </td>
    </tr>
</table>
</body>
</html>


De Table neemt bij de grote aan van de de eerste tr plus de nieuwe, logisch. Vervolgens klap je het ding weer in, maar de tabel wordt niet kleiner. Als je hem nog een keer uitklapt komt er nog een tr-grote bij. Gevolg is dat je ene gigantische tabel krijgt bij een anatal keer in en uitklappen. Weet iemand waar dit aan ligt? Heb het enkel in Mozilla, IE heeft nergens last van.

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 14-05 15:52
De tip: gebruik geen:
code:
1
display:none;

maar
code:
1
display:

Dus de display waarde legen en niet op block zetten. IE mac en Safari hebben hetzelfde probleem overigens.

Verwijderd

Dit lijkt me wel een bug in Mozilla.

Iets ranzigs als dit extra achter in je functie lost het wel op:
var ta=document.getElementsByTagName('table')[0];
ta.innerHTML=ta.innerHTML;

Bedenk trouwens wel dat een tabel cel van nature een display:table-cell heeft in mozilla, dus het op display:block zetten ervan kan je ook nog andere verrassingen bezorgen.

edit:

Oops, ik heb over het hoofd gezien dat het table-row, was en inderdaad dan werkt die wel goed.

[ Voor 16% gewijzigd door Verwijderd op 29-02-2004 19:42 ]


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 25-02 11:17

Clay

cookie erbij?

hmz. als je de display voor moz wisselt tussen table-row en none werkt het schitterend. Aan de ene kant zal het idd een bug zijn, aan de andere moet je eigenlijk wel table-row gebruiken ;)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

waarom een table gebruiken? En als je al een table gebruikt, hou je dan aan de juiste display-waarden (table-row, table-cell etc), of zet ze op null zodat de default weer genomen wordt.
De enige browser die hiermee bugt is IE...

[ Voor 11% gewijzigd door crisp op 29-02-2004 19:01 ]

Intentionally left blank


  • Alex
  • Registratie: Juli 2001
  • Laatst online: 28-02 19:26
Hmmm, hier zit zeker wat in :)
Ik heb deze code geschrevn om divjes te laten verdwijnen en te verschijnen, maar verwachte dat het exact hetzelfde zou werken bij tables. Dit is dus blijkbaar niet het geval....
Ik ga de code voor tables herschrijven en zal hem hierna neerdumpen voor het nageslagt :)

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Verwijderd

Clay schreef op 29 februari 2004 @ 18:57:
hmz. als je de display voor moz wisselt tussen table-row en none werkt het schitterend. Aan de ene kant zal het idd een bug zijn, aan de andere moet je eigenlijk wel table-row gebruiken ;)
Nee is geen bug, zover ik weet (is een paar keer langsgekomen op bugzilla) zijn deze allemaal INVALID (voorbeeld: http://bugzilla.mozilla.org/show_bug.cgi?id=177917 )

Verwijderd

Volgens mij is het wel een bug:
http://bugzilla.mozilla.org/show_bug.cgi?id=143397
Pagina: 1