<script>
function menu(obj) {
if(obj.style.display=='none'){
obj.style.display=''
} else {
obj.style.display='none'
}
}
</script>
Mitt problem är att "obj" kan vara:
c_0
c_0
Nu får jag fel för eftersom det är 2 st ID='C_0' kan man göra så att den tar alla ID som är lika med obj?
JojoxxMedlem sedan juni 20004 308 inlägg Det är mer en tankevurpa än ett scriptproblem. Samma id får inte användas för flera element utan måste vara unikt, annars är det inget id, snarare än class. Vill du knyta flera element samman med deras id kan du använda en array.
Alltså om jag vill ha så att:
<table cellpadding=0 cellspacing=0>
<tr ID='meny_0'><td> Huvudsidan</td></tr>
<tr ID='meny_0'><td><a href='javascript:menu(meny_4,0)'><img src='plus.gif' border=0></a> Nyheter</td></tr>
<tr ID='meny_4' style='display:'><td> <a href='javascript:menu(meny_6,0)'><img src='plus.gif' border=0></a> Gästbok</td></tr>
<tr ID='meny_6' style='display:'><td> waaa</td></tr>
<tr ID='meny_4' style='display:'><td> Befattningsbeskrivning</td></tr>
<tr ID='meny_0'><td> Plutonen</td></tr>
<tr ID='meny_0'><td> hosted</td></tr>
</table>
ska fungera får jag använda Classer?
Man kanske kan skapa något i stil med meny4_1 meny4_2... och gör så att den kollar alla som börja med meny4_
JojoxxMedlem sedan juni 20004 308 inlägg Så här kan en variant se ut:
<script type="text/javascript">
function getStyleClassByName(className){
if(document.all){
for(var styleSheet=0;styleSheet<document.styleSheets.length;styleSheet++){
for(var rule=0;rule<document.styleSheets[styleSheet].rules.length;rule++){
if(document.styleSheets[styleSheet].rules[rule].selectorText=="."+className){ return document.styleSheets[styleSheet].rules[rule]; }
}
}
} else if(document.getElementById){
for(var styleSheet=0;styleSheet<document.styleSheets.length;styleSheet++){
for(var rule=0;rule<document.styleSheets[styleSheet].cssRules.length;rule++){
if(document.styleSheets[styleSheet].cssRules[rule].selectorText=="."+className){ return document.styleSheets[styleSheet].cssRules[rule]; }
}
}
}
return null;
}
function sw(mnu){
var c=getStyleClassByName(mnu);
c.style.display=(c.style.display=="none")?"":"none";
}
</script>
<style type="text/css">
.aktuellt { display:none; }
.annat {display:none; }
td { border:solid black 1px; }
</style>
<a href="#" onclick="sw('aktuellt'); return false;">Aktuellt</a> - <a href="#" onclick="sw('annat'); return false;">Annat</a>
<table>
<tr><td>Någon sorts meny</td><td>...</td></tr>
<tr class="aktuellt"><td>Aktuellt 1</td><td>...</td></tr>
<tr class="annat"><td>Annat 1</td><td>...</td></tr>
<tr class="aktuellt"><td>Aktuellt 2</td><td>...</td></tr>
<tr class="aktuellt"><td>Aktuellt 3</td><td>...</td></tr>
<tr class="annat"><td>Annat 2</td><td>...</td></tr>
<tr class="annat"><td>Annat 3</td><td>...</td></tr>
</table>
läste tråden under denna... kanske ska köra något i stil med <table> istället för annars kan det ju bli buggit om man trycker på ditt: aktuellt -> annat 1 -> Aktuellt
för då stannar ju altuellt 2 och altullt 3 får kodar om ASP:n lite
JojoxxMedlem sedan juni 20004 308 inlägg Njae, buggigt vet jag inte. Det beror nog mer på att jag inte vet hur du vill ha det. Jag antar att du ville kuna lägga in de olika kategorierna hur som hellst. Tittar man på ditt exempel ligger ju inte alla "meny_0" samlade. Klickar du på länken "Aktuellt" skall alla (och bara) klassen aktuellt ändras och samma för "Annat". (Testat i IE och FireFox).
Förtydligande.
Detta är alltså en växla-funktion (som jag antar att du vill ha). Klickar du "Aktuellt", "Annat", "Aktuellt" så visas bara "Annat" eftersom du åter stängt "Aktuellt". Kanske övertydligt, men...