Toon posts:

[javascript] openklap menutje

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben bezig geweest met het bakken van een openklap menu ... maar nu gaat er het een en ander fout :'(
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script language="javascript">

function sh(numb) {

ov = document.getElementById('m' + 'o' + numb);
cv = document.getElementById('m' + 'c' + numb);

if (cv.style.display = 'block') {
cv.style.display = 'none';
ov.style.display = 'block';
}

else {
ov.style.display = 'none';
cv.style.display = 'block';
}

}

</script>

dit is het javascript wat ik geschreven heb ...

en dit zijn de codes die elkaar moeteb vervangen ...
de eerste is als het mnu dicht is, de tweede als het menu open is ...
code:
1
2
3
4
5
6
7
8
9
10
11
<table id="mc1">
  <tr>
    <td><a href="#" onclick="sh('1')">[img]"mc1.gif"></a></td>
[/img]
</table>

<table id="mo1" style="display: none">
  <tr>
    <td><a href="#" onclick="sh('1')">[img]"mo1.gif"></a></td>
[/img]
</table>

de eerste keer verandert ie wel, maar daar niet meer :(
iemand enig id ?

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

doe van dit:
code:
1
(cv.style.display = 'block')

eens dit maken:
code:
1
(cv.style.display == 'block')

meest voorkomende fout bij vergelijkingen:
een enkele = staat voor het zetten van een var, een dubbele voor het vergelijken.

www.jurgroessen.nl


Verwijderd

Topicstarter
toppie !

super bedankt >:)

edit:

nog één probleempje ...
de eerste keer werkt hij niet, pas als ik 2 keer klik gaat ie werken en daarna doet ie het altijd ...


[edit2]
dat kwam door dat ik doormiddel van style een id had verborgen, als ik het met de functie onload="sh('1')" is dat probleempje ook verholpen :)
[/edit2]

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

waarschijnlijk is de eerste keer nog niet bekend of je style display is of block.
Na die eerste klik heb je die waarde gezet en kan ie los.

vooraf die waarde ff zetten, dus wat de status onload moet zijn.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script language="javascript">

cv.style.display = 'block';


function sh(numb) {

ov = document.getElementById('m' + 'o' + numb);
cv = document.getElementById('m' + 'c' + numb);

if (cv.style.display = 'block') {
cv.style.display = 'none';
ov.style.display = 'block';
}

else {
ov.style.display = 'none';
cv.style.display = 'block';
}

}

</script>

bijv.

www.jurgroessen.nl


Verwijderd

Topicstarter
ik heb hem nu werkende gelukkig, maar er zit nog steeds een foutje in ...

doordat ik nu met onload werk laat hij eerst beide id's zien en verbergt ie pas de tweede als de hele pagina geladen is ...

iemand een id hoe ik dat kan oplossen ?

de code van hangloozz werkt niet :'(

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:28

crisp

Devver

Pixelated

Op zaterdag 27 april 2002 12:05 schreef MinardiFan het volgende:
ik heb hem nu werkende gelukkig, maar er zit nog steeds een foutje in ...

doordat ik nu met onload werk laat hij eerst beide id's zien en verbergt ie pas de tweede als de hele pagina geladen is ...

iemand een id hoe ik dat kan oplossen ?

de code van hangloozz werkt niet :'(
Door de style van de tweede inline mee te geven:
code:
1
<div id="cv" style="display: none">blaat</div>

Intentionally left blank


Verwijderd

Zulke dingetjes los ik meestal niet op door te vergelijken met == maar door != te gebruiken.

Dat geeft veel meer zekerheid over de waarde van style.display, aangezien bij een onbekende waarde een bekende waarde wordt toegekend.

Verder kun je natuurlijk al bij het laden van de pagina een tabel onzichtbaar maken met de style="display: none;" attribute.

Waarom gebruik je eigenlijk tabellen voor gevallen met maar één cel? Heb je de rest soms weggelaten voor de duidelijkheid van je code?
In dat geval is dit prima, in een ander geval zou ik een div gebruiken.

Verwijderd

Topicstarter
ik had het gedaan voor de duidelijkheid van mn code :)

als ik alleen cv een display-waarde mbv style zou geven werkt ie niet optimaal, maar nu heb ik beide (cv en ov) een waarde gegeven en dan werkt ie wel :)

verder heb ik ook ff dat != ingebouwd in plaats van dat == als je denkt dat dat beter is :)

bedankt voor jullie hulp !
Pagina: 1