Javascript show/hide functie van meerdere contents
Goedendag,
Ik had een vraagje over javascript. Ik heb een webpagina met 5 contents. c1 t/m c5. Ik heb ook 5 links, die verwijzen naar elk van de contents.
Dus Link 1 linkt naar c1 etc.
Als je op link 1 klikt moet c1 dus zichtbaar worden, maar alle andere contenten die opstaan moeten dichtklappen. Nu heb ik dit stuk code geprobeerd, maar dit lukt niet.
Als ik dit stuk code doe lukt het wel, maar hiermee gaan de niet-active contents niet dicht:
Ik had een vraagje over javascript. Ik heb een webpagina met 5 contents. c1 t/m c5. Ik heb ook 5 links, die verwijzen naar elk van de contents.
Dus Link 1 linkt naar c1 etc.
Als je op link 1 klikt moet c1 dus zichtbaar worden, maar alle andere contenten die opstaan moeten dichtklappen. Nu heb ik dit stuk code geprobeerd, maar dit lukt niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">
function visible(id) {
if (id == 'c1') {
document.getElementById(c2).style.display = 'none';
document.getElementById(c3).style.display = 'none';
document.getElementById(c4).style.display = 'none';
document.getElementById(c5).style.display = 'none';
}
else {
var c = document.getElementById(id);
if(c.style.display == 'none') {
document.getElementById(c2).style.display = 'none';
document.getElementById(c3).style.display = 'none';
document.getElementById(c4).style.display = 'none';
document.getElementById(c5).style.display = 'none';
c.style.display = 'block';
}
else {
c.style.display = 'none';
}
}
}
</script>
function visible(id) {
if (id == 'c1') {
document.getElementById(c2).style.display = 'none';
document.getElementById(c3).style.display = 'none';
document.getElementById(c4).style.display = 'none';
document.getElementById(c5).style.display = 'none';
}
else {
var c = document.getElementById(id);
if(c.style.display == 'none') {
document.getElementById(c2).style.display = 'none';
document.getElementById(c3).style.display = 'none';
document.getElementById(c4).style.display = 'none';
document.getElementById(c5).style.display = 'none';
c.style.display = 'block';
}
else {
c.style.display = 'none';
}
}
}
</script>
Als ik dit stuk code doe lukt het wel, maar hiermee gaan de niet-active contents niet dicht:
Is het ook mogelijk zonder dat ik extra zooi moet downloaden? Want het is eigenlijk maar 1 java functie :)
Java lijkt me hier ook een beetje over de top als je geen framework wil gebruiken
Lijkt mij de enige manier om dingen te show/hiden zonder de pagina te verversen of ligt dat aan mij?
zet je contents in een array en loop er doorheen.
Als je bij de key in de array bent die moet worden weergegeven, dan zet je die visibility op block. Roep deze functie dan aan met de ID van de content die je wilt showen als parameter...
Als je bij de key in de array bent die moet worden weergegeven, dan zet je die visibility op block. Roep deze functie dan aan met de ID van de content die je wilt showen als parameter...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/javascript">
function visible(id) {
var c= new Array(5)
c[0]="c1";
c[1]="c2";
c[2]="c3";
c[3]="c4";
c[4]="c5";
var x=0;
for (x=0; x<5; x++)
{
if (c[x] == id) {
c[x].style.display = 'block';
}
else {
c[x].style.display = 'none';
}
}
}
</script>
function visible(id) {
var c= new Array(5)
c[0]="c1";
c[1]="c2";
c[2]="c3";
c[3]="c4";
c[4]="c5";
var x=0;
for (x=0; x<5; x++)
{
if (c[x] == id) {
c[x].style.display = 'block';
}
else {
c[x].style.display = 'none';
}
}
}
</script>
Zo bedoel je? Weet niet of dit zal werken aangezien ik niet echt goed ben in javascript, maar ik zal het eens testen.
Edit:
Hmm, lijkt niet echt te werken, maar ik puzzel even verder.
Gewijzigd op 01/01/1970 01:00:00 door Steven Hack
'aapjuh:
Lijkt mij de enige manier om dingen te show/hiden zonder de pagina te verversen of ligt dat aan mij?
Volgens mij ontgaat mijn punt je een beetje
Java != Javascript
volgens mij moet je ook nog die
schrijven als
schrijven als
Klopt inderdaad, maar ik ontga hier dan het java gedeelte aangezien alles hier over javascript gaat? inclusief dat JQuery tooltje. Maargoed.
Heb even dat met eval geprobeerd maar het werkt nog steeds niet. Is dit wel mogelijk of zit er gewoon een scriptfout in?
Heb even dat met eval geprobeerd maar het werkt nog steeds niet. Is dit wel mogelijk of zit er gewoon een scriptfout in?
al je array items moeten wel references bevatten
dus elke item wordt zo geformat:
dus elke item wordt zo geformat:
Edit:
Java is een andere taal/techniek dan javascript. JS is slechts een derrivaat van Java dat veel semantische en syntaxische overeenkomsten heeft, het heeft over het algemeen weinig met elkaar te maken. Binnen webdevelopment spreken we meestal van javascript of java-applets/objects
Java is een andere taal/techniek dan javascript. JS is slechts een derrivaat van Java dat veel semantische en syntaxische overeenkomsten heeft, het heeft over het algemeen weinig met elkaar te maken. Binnen webdevelopment spreken we meestal van javascript of java-applets/objects
Gewijzigd op 01/01/1970 01:00:00 door Barry
en toen ging javascript uitgezet worden.. krijg je display:none? Of staan ze standaard zichtbaar?
@Barry: Dat wist ik inderdaad, vond het daarom ook al raar dat Jacco hier over Java begon, maargoed. Bedankt voor die tip, was dat even vergeten inderdaad.
@Merijn: standaard zichtbaar, en dan onload display: none;
Maar zolang ik niet weet hoe ik meerdere display's tegelijk op none kan zetten, schiet dat niet echt op.
Het lukt verder nog niet echt, ik heb op dit moment het volgende:
Een voorbeeld is te zien op: www.stevenhack.nl/JapanCss/test.php
@Merijn: standaard zichtbaar, en dan onload display: none;
Maar zolang ik niet weet hoe ik meerdere display's tegelijk op none kan zetten, schiet dat niet echt op.
Het lukt verder nog niet echt, ik heb op dit moment het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">
function visible(id) {
var c= new Array(4)
c[0]=document.getElementById("c2");
c[1]=document.getElementById("c3");
c[2]=document.getElementById("c4");
c[3]=document.getElementById("c5");
var x=0;
for (x=0; x<4; x++)
{
if (c[x] == id) {
eval(c[x]).style.display = 'block';
}
else {
eval(c[x]).style.display = 'none';
}
}
}
</script>
function visible(id) {
var c= new Array(4)
c[0]=document.getElementById("c2");
c[1]=document.getElementById("c3");
c[2]=document.getElementById("c4");
c[3]=document.getElementById("c5");
var x=0;
for (x=0; x<4; x++)
{
if (c[x] == id) {
eval(c[x]).style.display = 'block';
}
else {
eval(c[x]).style.display = 'none';
}
}
}
</script>
Een voorbeeld is te zien op: www.stevenhack.nl/JapanCss/test.php
*kleine onschuldige bump (A)*
Kan nergens vinden of dit uberhaupt mogelijk is, 4 keer achter elkaar getElementById gebruiken. Weet verder niets van javascript opzich. Iemand die me hier mee kan helpen?
Kan nergens vinden of dit uberhaupt mogelijk is, 4 keer achter elkaar getElementById gebruiken. Weet verder niets van javascript opzich. Iemand die me hier mee kan helpen?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
function visible(id) {
for(var i=2;i <= 5;i++) {
if(id == i) { var display = 'block'; } else { var display = 'none'; }
document.getElementById('c'+i).style.display = display;
}
}
for(var i=2;i <= 5;i++) {
if(id == i) { var display = 'block'; } else { var display = 'none'; }
document.getElementById('c'+i).style.display = display;
}
}
Niet getest...
Zoveel moeite en zoveel dagen verspild voor iets wat in een paar seconden kan worden opgelost door een framework te gebruiken..
'Mitchell:
Beetje overkill om een framework te gebruiken voor 1 ding?Zoveel moeite en zoveel dagen verspild voor iets wat in een paar seconden kan worden opgelost door een framework te gebruiken..
Ben het er inderdaad met WillemJan eens dat een framework hier nogal overbodig is. En nu snap ik ook teminste weer wat meer JavaScript.
Hartelijk dank voor de edit WillemJan, het werkt perfect! Echt zeer bedankt _o_
En ook de rest bedankt voor jullie bijdrage.
Hartelijk dank voor de edit WillemJan, het werkt perfect! Echt zeer bedankt _o_
En ook de rest bedankt voor jullie bijdrage.




