<tr></tr> unhiden/hiden dmv javascript.

Pagina: 1
Acties:

  • Rostvertol-Mil
  • Registratie: Januari 2002
  • Laatst online: 12:23
Nu heb ik hetvolgende gedaan:
in de css staat:
code:
1
2
3
.verborgen {
    display: none;
}

en ik maak hem weer zichtbaar met het volgende script.
code:
1
2
3
4
5
6
7
8
9
10
11
function ShowContent (id)
{
    if (document.getElementById(id).style.display == "table-row")
    {
        document.getElementById(id).style.display = "none";
    }
    else
    {
        document.getElementById(id).style.display = "table-row";
    }
}
I
zie hier een voorbeeld

deze code werkt echter alleen met mozilla. Als ik niet in de css "display: none;" zet werkt ie weer wel in Internet Explorer (v6sp1).
"visibility: hidden" is geen optie omdat ie alleen de inhoud van de row verbergt, en niet de hele row.

Hoe kan ik dit fixen, zodat het ook in IE wil?

[ Voor 33% gewijzigd door Rostvertol-Mil op 04-07-2004 18:20 ]

dot.blaat


Verwijderd

IE kent table-row niet. Je kunt de display 'resetten' door 'm gelijk te stellen aan een lege string.
object.style.display = "";

Dat werkt volgens mij voor beide browsers.
Edit:
Je doet wat rare dingen, zie ik. Je zegt dat je de display van een TR wilt beinvloeden maar ik zie je ook met .src vroeten. What's up with that?

Overigens zal de test op style.display (r.3) alleen werken als je de display ook daadwerkelijk via de style hebt gezet. Niet als je dat via een CSS klasse doet.

[ Voor 51% gewijzigd door Verwijderd op 04-07-2004 18:14 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

IE kent geen display:table-row, gebruik gewoon block om het ook in IE te laten werken.
btw
JavaScript:
1
document.getElementById(id).src = "images/minus.gif";

een tr heeft geen src property ;)

Intentionally left blank


  • Rostvertol-Mil
  • Registratie: Januari 2002
  • Laatst online: 12:23
crisp schreef op 04 juli 2004 @ 18:09:
IE kent geen display:table-row, gebruik gewoon block om het ook in IE te laten werken.
btw
JavaScript:
1
document.getElementById(id).src = "images/minus.gif";

een tr heeft geen src property ;)
block werkt niet:
http://www.g5.nl/temp/twee.html
klik er maar een paar keer op als je mozilla heb, mozilla houd dan geen rekening met de collspan.

Met een lege string resetten werkt op een of andere manier ook niet.
http://www.g5.nl/temp/drie.html
Ik denk omdat het komt omdat ik display: none; voordefinieer in men css.

[ Voor 10% gewijzigd door Rostvertol-Mil op 04-07-2004 18:20 ]

dot.blaat


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

probeer het anders zo:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function ShowContent (id)
{
    if (document.getElementById(id).style.display != '')
    {
        document.getElementById(id).style.display = '';
    }
    else
    {
        try { document.getElementById(id).style.display = 'table-row'; }
        catch(e) { document.getElementById(id).style.display = 'block'; }
    }
}

Intentionally left blank


  • Rostvertol-Mil
  • Registratie: Januari 2002
  • Laatst online: 12:23
crisp schreef op 04 juli 2004 @ 18:30:
probeer het anders zo:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function ShowContent (id)
{
    if (document.getElementById(id).style.display != '')
    {
        document.getElementById(id).style.display = '';
    }
    else
    {
        try { document.getElementById(id).style.display = 'table-row'; }
        catch(e) { document.getElementById(id).style.display = 'block'; }
    }
}
Wow, thanks!
die werkt zupah _/-\o_
http://www.g5.nl/temp/vier.html

dot.blaat


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

het kan ook andersom, maar dan moet je de style inline opgeven:
HTML:
1
<tr id="row" style="display:none">

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
function ShowContent (id)
{
    if (document.getElementById(id).style.display == 'none')
    {
        document.getElementById(id).style.display = '';
    }
    else
    {
        document.getElementById(id).style.display = 'none';
    }
}


(waar Blues dus op doelde)

[ Voor 4% gewijzigd door crisp op 04-07-2004 18:38 ]

Intentionally left blank


  • Rostvertol-Mil
  • Registratie: Januari 2002
  • Laatst online: 12:23
Verwijderd schreef op 04 juli 2004 @ 18:09:
IE kent table-row niet. Je kunt de display 'resetten' door 'm gelijk te stellen aan een lege string.
object.style.display = "";

Dat werkt volgens mij voor beide browsers.
Edit:
Je doet wat rare dingen, zie ik. Je zegt dat je de display van een TR wilt beinvloeden maar ik zie je ook met .src vroeten. What's up with that?

Overigens zal de test op style.display (r.3) alleen werken als je de display ook daadwerkelijk via de style hebt gezet. Niet als je dat via een CSS klasse doet.
aha,
naja, die src was voor een plaatje dat moest veranderen, ik had men scriptje wat afgeslankt maar was die src vergeten.
nu heb ik dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function ShowContent (id)
{
    if (document.getElementById("Field-" + id).style.display != '')
    {
        document.getElementById("Field-" + id).style.display = '';
        document.getElementById("FieldImg-" + id).src = "images/plus.gif";
    }
    else
    {
        try { document.getElementById("Field-" + id).style.display = 'table-row'; }
        catch(e) { document.getElementById("Field-" + id).style.display = 'block'; }        
        document.getElementById("FieldImg-" + id).src = "images/minus.gif";


    }
}

die src is dus voor et fieldImg plaatje.
bedankt voor julie hulp, ik ben nmlk niet echt handig in javascript.

[ Voor 10% gewijzigd door Rostvertol-Mil op 04-07-2004 18:45 ]

dot.blaat


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 20-02 12:27
crisp schreef op zondag 04 juli 2004 @ 18:37:
het kan ook andersom, maar dan moet je de style inline opgeven:
HTML:
1
<tr id="row" style="display:none">

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
function ShowContent (id)
{
    if (document.getElementById(id).style.display == 'none')
    {
        document.getElementById(id).style.display = '';
    }
    else
    {
        document.getElementById(id).style.display = 'none';
    }
}


(waar Blues dus op doelde)
Dit probeer ik nu al 3 uur te bereiken. Ik heb bijna hetzelfde script uiteindelijk gemaakt als hierboven, maar het _blijft_ niet werken! Ik wil het gewoon onder IE6 aan de gang hebben.

Ik heb hier een testpagina staan: http://pierre.flexbouncer.com/test.html

Volgens mij ligt het aan de IF, namelijk, http://pierre.flexbouncer.com/test2.html werkt wel goed. Uiteindelijk wil ik ook nog dat het + je door een - wordt vervangen, maar dat had ik al ergens zien gebeuren.

Heeft iemand enig idee wáárom dit script niet werkt? Ik wil dus, na klikken op het +je, een extra rij laten zien, en na het opnieuw klikken, die rij weer laten verdwijnen...

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 12:19

RM-rf

1 2 3 4 5 7 6 8 9

probeer eens een andere variabele-naam dan 'id' ... ik vermoed dat dit een gereserveerde variabele naam is in ie (ik weet het bijna zeker)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 20-02 12:27
Je hebt gelijk, die probeersel werkt nu deels, alleen het linkje nog niet (?), de + , alleen de achtergrond van de tabel werkt. maar ik ga zo verder klooien na een hapje eten :)

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

RM-rf schreef op maandag 24 april 2006 @ 17:48:
probeer eens een andere variabele-naam dan 'id' ... ik vermoed dat dit een gereserveerde variabele naam is in ie (ik weet het bijna zeker)
Ik weet bijna zeker van niet; het is in ieder geval geen reserved word binnen javascript, en een simpele test in IE geeft bij mij geen problemen...

Intentionally left blank

Pagina: 1