Dieter Raber: Link-class ändern

Beitrag lesen

Hallo Andi,

<link href="../../style/subnav.css" rel="stylesheet" type="text/css">

und darin hast du je eine Klasse
.active {
  background: url(bild-mit-pfeil.png) no-repeat 1px 2px; /* oder so */
  display:block; /* zumindest evtl, haengt davon ab, wie du mit dem Bild hinkommst */
}
.normal {
  background: url(bild-ohne-pfeil.png) no-repeat 1px 2px; /* oder so */
  display:block; /* zumindest evtl, haengt davon ab, wie du mit dem Bild hinkommst */
}
Das ist nur ein Beispiel, aber so aehnlich sollte das wohl aussehen

function aktivieren(sender)  {

// referenz auf das root element des menus
  var menuRoot = document.getElementById('nav');

// von dort aus alle <a>
  var alleAElemente = menuRoot.getElementsByTagName('a');

// Jetzt durch alle <a> rauschen
  for(var i = 0; i < alleAElemente.length; i++)
  {
     // setze alle ausser dem Element, das die Funktion gestartet hat auf 'normal'
     alleAElemente[i].className = alleAElemente[i] != sender ? 'active' : 'normal';
  }
  return true;
}

<li><a href="..." class="normal"

onClick="return aktivieren(this)"
                             ^ hier muss eine referenz auf <a> selbst sein
                               Deine Funktion returnt true, dadurch dass du 'return funktionsname()' schreibst, wird
                               der eigentliche Zweck des <a>, naemlich das href auch ausgefuehrt
        target="content"
        ^ Das koennte eigentlich im <head> stehen (<base href>)

id="eins">
        ^ id ist ok, aber bei dieser loesung unnoetig

Gemeinsame Ziele </a></li>
                        ^ lass hier einen Space, sonst ist IE dir unter Umstaenden gram

Gruß,

Dieter