Klein scriptje uitbreiden
Ik heb een klein javascriptje en ben aan het proberen dit wat uit te breiden, helaas lukt dit me zelf niet helemaal omdat ik vrij weinig van javascript weet.
Zou iemand me hiermee kunnen helpen?
Ik heb namelijk 2 divjes. Als ik nu op div 1 klik komt 1a tevoorschijn, klik ik op div 2 dan komt 2a tevoorschijn. Maar nu zou ik willen dat als ik op 1 klik 1a komt, en 2a zeker weg is. En andersom ook zo.
Dit is de originele code, ben die nu zelf wat om aan het bouwen (zie onderste code), werkt dus helaas niet, hoe krijg ik die enigzins werkend?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
function showlayer(layer){
var myLayer = document.getElementById(layer);
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
var myLayer = document.getElementById(layer);
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function showlayer(layer){
var myLayer = document.getElementById(layer);
if (myLayer == "sm_1"){ //hier wil ik eigenlijk kijken of ik op 1 klik
sm_2.style.display="none"; //hier wil ik dan zorgen dat sm_2 iig niet weergegeven word
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
elseif (myLayer == "sm_2){ //hier wil ik eigenlijk kijken of ik op 2 klik
sm_1.style.display="none"; //hier wil ik dan zorgen dat sm_1 iig niet weergegeven word
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
}
var myLayer = document.getElementById(layer);
if (myLayer == "sm_1"){ //hier wil ik eigenlijk kijken of ik op 1 klik
sm_2.style.display="none"; //hier wil ik dan zorgen dat sm_2 iig niet weergegeven word
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
elseif (myLayer == "sm_2){ //hier wil ik eigenlijk kijken of ik op 2 klik
sm_1.style.display="none"; //hier wil ik dan zorgen dat sm_1 iig niet weergegeven word
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
}
De code word zo doorgegeven:
onclick="javascript:showlayer('sm_2')"
http://www.dynamicdrive.com/dynamicindex16/formdependency.htm
http://www.javascriptkit.com/javatutors/selectcontent2.shtml
Bekijk deze site's is hier worden geen div's maar form elementen gebruikt: http://www.javascriptkit.com/javatutors/selectcontent2.shtml
Mijn probleem zit hem vooral in mijn if statement.
Ik probeer eigenlijk met die if te kijken of het om id sm_1 of id sm_2 gaat, maar ik weet niet hoe javascript dat leest.
Toevoeging op 14/01/2013 06:40:09:
Ik heb nu dit:
Als ik op hoofditem 2 druk sluit hij sm_1 wel , maar als ik op hoofditem 1 druk sluit hij sm_2 niet.
Iemand die mijn fout ziet?
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>
function showlayer(layer){
var myLayer = document.getElementById(layer);
if(layer="sm_1") {
if(sm_2.style.display=="block"){sm_2.style.display="none";}
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
else if(layer="sm_2"){
if(sm_1.style.display=="block"){sm_1.style.display="none";}
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
}
</script>
function showlayer(layer){
var myLayer = document.getElementById(layer);
if(layer="sm_1") {
if(sm_2.style.display=="block"){sm_2.style.display="none";}
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
else if(layer="sm_2"){
if(sm_1.style.display=="block"){sm_1.style.display="none";}
if(myLayer.style.display=="none" || myLayer.style.display==""){
myLayer.style.display="block";
}
else {
myLayer.style.display="none";
}
}
}
</script>
Gewijzigd op 14/01/2013 06:40:40 door D B
Je vergelijkingen gaan fout, je vergelijkt met één 'gelijk aan'-teken (=). Dat is de waarde toekennen. In je bovenstaande scripts doe je het wel goed (==).
Wat stom.
Bedankt!