TR display inline en none

Pagina: 1
Acties:

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Hallo,

Ik wil met een javascriptje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function selectShow () {
    selectField = selectShow.arguments[0];
    checkValue = selectShow.arguments[1];
    
    for (i = 2;i < selectShow.arguments.length;i++) {
        layer = document.getElementById (selectShow.arguments[i]);
            
        if (selectField.value == checkValue)
            layer.style.display = 'inline';
        else
            layer.style.display = 'none';
    }
}

een TR (tabel rij) laten verdwijnen of verschijnen afhankelijk van de waarde van het input veld.

Bij een span of div of what ever werkt het goed alleen wanneer ik een TR probeer te laten verdwijnen en weer terug laat komen gebeurt er dit:
Afbeeldingslocatie: http://www.monstar.nl/test/display_fout.png
terwijl hij dit moet doen:
Afbeeldingslocatie: http://www.monstar.nl/test/display_goed.png
(De TR met de pull-down er in moet dus verdwijnen en verschijnen).

Zoals je ziet lijkt de TR in de foute situatie in de eerste cell te komen...

Wat doe ik verkeerd?

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Als je ipv 'inline' nou 'table-cell' gebruikt?

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 29-04 17:12
Je moet het op block zetten. Dan zou het goed moeten gaan. Of table-cell, maar dat wordt enkel door Mozilla/Opera ondersteund, of niet André? En moet het dan niet table-row zijn?

Nu maak je van die TR een inline element, en die elementen hebben geen breedte/hoogte. Daarom blocklevel, die hebben dat wel.

[ Voor 27% gewijzigd door coubertin119 op 04-05-2005 14:56 ]

Skat! Skat! Skat!


  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Dan werkt het wel, bij mozilla tenminste. Met IE niet.

Is er misschien iets waarmee ik dit kan opvangen?

Hee, inline en block werken wel met IE... wat nu met Mozilla... browser detectie wil ik eigenlijk voorkomen.

[ Voor 35% gewijzigd door Slagroom op 04-05-2005 15:08 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Slagroom schreef op woensdag 04 mei 2005 @ 15:06:
Dan werkt het wel, bij mozilla tenminste. Met IE niet.

Is er misschien iets waarmee ik dit kan opvangen?
Werkt het ook niet met de suggesties die coubertin119 doet: 'table-row' of gewoon 'block' :?

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
@André: Block werkt helaas niet met Mozilla in dit geval

Heb toch maar brwoserdetectie gebruikt. Niet helemaal waterdicht maar het werkt.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function isIE () {
    if (navigator.appName == 'Microsoft Internet Explorer')
        return true;
    else
        return false;
}

function selectShow () {
    selectField = selectShow.arguments[0];
    checkValue = selectShow.arguments[1];
    displayValue = selectShow.arguments[2];
    
    if (!displayValue)
        displayValue = 'inline';
    
    for (i = 3;i < selectShow.arguments.length;i++) {
        layer = document.getElementById (selectShow.arguments[i]);
            
        if (selectField.value == checkValue)
            layer.style.display = displayValue;
        else
            layer.style.display = 'none';
    }
}

code:
1
selectShow (this, '1', isIE () ? '' : 'table-row', 'fjm_l')

Verwijderd

Je kunt beter "none" en "" gebruiken. Dat werkt cross browser. (Dus niet "inline" en "table-cell" maar "".)

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Anne, je bent de man! Super!
Pagina: 1