Seite 1 von 1

kleines javascript problem

Verfasst: 23.04.2008 01:05
von metty84
moin, zu aller erst muss ich sagen ich bin ein javascriptneuling also bitte schlagt mich nicht :)

also ich hab nen kleines script gebastelt mit dem man eine box über einen link ein und ausgeblenden kann und gleichzeitig soll sich die farbe des links ändern. nur mein problem ist das zwar das ganzze funktioniert beim öffnen der box aber beim schließen ändert sich die farbe nicht wieder zurück in das schöne grün und bleibt rot

hier der code:

Code: Alles auswählen

<script type="text/javascript">
function swap(id) {
   box = document.getElementById(id);
   box.style.display = (box.style.display != "none") ? "none" : "";

   link_id = 'link' + id;
   link = document.getElementById(link_id);
   link.style.color = (link.style.color = "#00FF00") ? "#FF0000" : "#00FF00";
}
</script>



<a id="linkdetail{veranstalter.ROW_NUMBER}" style="cursor: pointer; color: #00FF00;" onclick="swap('detail{veranstalter.ROW_NUMBER}');"><b>[Details]</b></a>




<div id="detail{veranstalter.ROW_NUMBER}" style="display:none">
BOXCONTENT
</div>
ich hoffe mir kann irgendwer helfen und sagen wo der fehler liegt den ich zermater mir hier schon ne ganze weil das hirn :)

Verfasst: 23.04.2008 10:55
von davil
Also auf die Schnelle kann ich da auch keinen Fehler finden, aber vielleicht spielt dir da der Browser einen Streich wegen dem CSS.
Schau mal ob die pseudo-Klassen für die Links (:link, :visited, :active) gesetzt sind, eventuell wird nämlich eine von denen aktiv und behält die Farbe bei.

Mit welchem Browser testest du? Oft hilft in solchen Situationen, das ganze mit 2-3 Browsern auszuprobieren (sollte man sowieso, um sicherzustellen, dass es für alle gleich aussieht).

Falls du mehr solche Sachen mit JS machst, kann ich dir übrigens die jQuery-Bibliothek ans Herz legen, die kümmert sich teilweise auch schon automatisch um solche Problemchen und reduziert deinen Code-Aufwand locker um den Faktor 2-3.

Verfasst: 23.04.2008 15:44
von S2B

Code: Alles auswählen

(link.style.color == "#00FF00")
:wink:

Verfasst: 23.04.2008 21:38
von metty84
erstmal danke für die hilfe aber es nützt leider nix

die "pseudoklassen" für die links sind für alle links in der css gesetzt dürfte jedoch keine rolle spiele da ja javscript immer nur einen wert setzen kann und damit die "pseudoklassen" sowieso überschrieben werden.

getestet hab ichs mit dem IE 7 und firefox und das ergebniss ist das selbe

die variante von S2B funzt leider auch nicht da geht der wechsel überhaupt nichtmehr.

noch ne idee?

Verfasst: 23.04.2008 22:24
von S2B
Die in der CSS-Datei definierten Eigenschaften werden nur dann von JavaScript eingelesen, wenn diese per @include direkt in der html-Datei eingelesen wurde (also nicht über <link />). Vielleicht liegt es ja daran...

Verfasst: 23.04.2008 23:28
von metty84
ne liegt nicht an der css habs mal mit nem div stat dem a tag getestet und das problem war das selbe.

ich hab jetzt folgende variante jedoch funzt diese nur im IE aber nicht im firefox

Code: Alles auswählen

<script type="text/javascript">
function swap(id) {
   box = document.getElementById(id);
   box.style.display = (box.style.display != "none") ? "none" : "";
   link_id = 'link' + id;
   link = document.getElementById(link_id);
   link.style.color = (link.currentStyle.color == "#00ff00") ? "#ff0000" : "#00ff00"; 
}
</script>
jemand ne idee?

Verfasst: 24.04.2008 12:07
von S2B
Teste doch das ganze mal mit einer anderen CSS-Eigenschaft, z.B. backgroundColor. Dann kann man den Bug ein bisschen eingrenzen.