Toon posts:

[javascript ]div toggle style display

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik onderstaande code om div tags zichtbaar te maken of niet. Hoe kan ik onderstaande code zo aanpassen dat er max 1 div tag zichtbaar is. De div tags dragen de naam open[1] waarbij 1 een id uit een db is (unieke waarde). Een omweg is om de items te tellen die uit de db komen en bij een klik op de div het desbtreffende id laten uitklappen en alles behalve de div id waarop geklikt wordt laten inklappen maar wenselijk is dit niet aangezien het aantal items uit de db nogal veel kunnen zijn.
Iemand een idee?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function toggle(sBlockId)
{ 
var oElement = null;
sBlock = document.getElementById(sBlockId);
if(!sBlock) { return; }
if(sBlock.style.display == 'none')
{  
sBlock.style.display = '';
sBlock = null;
}
else if(sBlock.style.display == '')
{ 
sBlock.style.display = 'none';
sBlock = null;
}
}

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je kan ook gebruik maken van de document.getElementsByTagName("div"). Die returned automagisch een array met alle elementen die div zijn. Enige is dat je wellicht een extra check op naam moet inbouwen, aangezien hier meteen alle divs in zitten.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Kan je niet gewoon doormiddel van een loopje alle items op "none" zetten en daarna het item dat je wilt op "" zetten?

Blog [Stackoverflow] [LinkedIn]


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:11
Als er telkens maar 1 <div> zichtbaar is kun je ook het id van de open div bijhouden in een var. Bij het togglen zet je dan die <div> op display none en de andere op block.
code:
1
2
3
4
5
6
7
8
9
var open = 'default';

function toggle(id) {
  document.getElementById(open).style.display = 'none';
  open = id;
  document.getElementById(open).style.display = 'block';
}

window.onload = document.getElementById(open).style.display = 'block';

Regeren is vooruitschuiven


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

T-MOB schreef op zondag 15 mei 2005 @ 11:53:
Als er telkens maar 1
zichtbaar is kun je ook het id van de open div bijhouden in een var. Bij het togglen zet je dan die
op display none en de andere op block.
code:
1
2
3
4
5
6
7
8
9
var open = 'default';

function toggle(id) {
  document.getElementById(open).style.display = 'none';
  open = id;
  document.getElementById(open).style.display = 'block';
}

window.onload = document.getElementById(open).style.display = 'block';
En toen werkte window.open() niet meer ;)

Intentionally left blank