Joachim: Skriptfehler bei onmouseover

Hallo,

mit folgendem JavaScript-Code gibt es Probleme:

<script language="JavaScript">
<!--
function grau(menuepunkt)
  {
  window.document.['menuepunkt'].style.backgroundColor = '#DBDBDB';
  }
</script>

Aufruf der Funktion:

onmouseover="grau('aktuelles')

Ein durch eine Ebene repräsentierter Menüpunkt hat die ID aktuelles. Mit dem oben stehenden onmouseover möchte ich nun die von mir im Header definierte Funktion grau aufrufen und die Hintergrundfarbe des Menüpunktes verändern. Ich übergebe der Funktion den Namen des Menüpunktes und möchte erreichen, dass die Funktion in Abhängigkeit es übergebenen Namens das entsprechende Feld verändert.

Leider bekomme ich das so nicht hin. Wo liegt der Fehler? Danke.

Gruß

Joachim

  1. Hallo,

    Erstens:

    window.document.['menuepunkt'].style.backgroundColor = '#DBDBDB';

    Diese Syntax ist mir unbekannt; IMHO ist ist vor der eckigen Klammer ein Objektbezeichner erforderlich. Falls ich mich irre und diese Syntax gibt's wirklich, würde ich mich über einen erklärenden Link freuen.

    Nichtsdestotrotz würd ich doch eher über getElementById auf das Objekt zugreifen.

    Zweitens:

    function grau(menuepunkt)
      {
      window.document.['menuepunkt'].style.backgroundColor = '#DBDBDB';
      }

    Du übergibst der Funktion einen Wert, verwendest ihn dann aber nicht weiter, sondern statt dessen den Variablennamen als String.

    Grüße,

    Utz

    --
    Yes, no, maybe...I don't know...Can you repeat the question?
  2. Hallo,

    mit folgendem JavaScript-Code gibt es Probleme:

    <script language="JavaScript">

    <script type="text/javascript">

    <!--
    function grau(menuepunkt)
      {
      window.document.['menuepunkt'].style.backgroundColor = '#DBDBDB';

    Wo hast Du das her?
    Erstens wird, wenn Du "menuepunkt" in Quotes schreibt, niemals die Variable ausgewertet, sondern immer der String "menuepunkt" als konstanter Wert genommen. Zweitens sprichst Du die HTML-Elemente falsch an. Entweder:
    http://selfhtml.teamone.de/javascript/objekte/all.htm#mit_namen_ansprechen
    window.document.all[menuepunkt].style.backgroundColor = '#DBDBDB';
    oder besser:
    http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_id
    window.document.getElementById(menuepunkt).style.backgroundColor = '#DBDBDB';

    }
    </script>

    Aufruf der Funktion:

    onmouseover="grau('aktuelles')"

    Ein durch eine Ebene repräsentierter Menüpunkt hat die ID aktuelles. Mit dem oben stehenden onmouseover möchte ich nun die von mir im Header definierte Funktion grau aufrufen und die Hintergrundfarbe des Menüpunktes verändern. Ich übergebe der Funktion den Namen des Menüpunktes und möchte erreichen, dass die Funktion in Abhängigkeit es übergebenen Namens das entsprechende Feld verändert.

    Das lässt sich garantiert viel einfacher mit CSS lösen:
    http://selfhtml.teamone.de/css/eigenschaften/pseudoformate.htm#link_visited_hover_active_focus
    http://aktuell.de.selfhtml.org/artikel/css/mouseover/index.htm

    viele Grüße

    Axel