Andreas Nagel: onmouseover mit javascript zuweisen

Hallo

Ich würde gerne ein Menü erstellen in diesem der Bereich gelb unterlegt wird sobald diese Seite in einem Frame geöffnet wird und die anderen Bereiche sollen blau unterlegt werden sobald mit der Maus drübergefahren wird.

Ich will die Farben per css zuweisen, was ja mit OnMouseOber im td Tag einwandfrei funktioniert. Doch soll sich ja nichts ändern wenn ich mit der Maus über den geöffneten Bereich fahre.

Also will ich OnMouseOber den Zellen per JavaScript zuweisen. Und wenn ich nun

top.frame1.document.getelementbyid("b" + 1).onmouseover = ''

OnMouseOver ausschalte funktioniert dies einwandfrei. Doch wie weise ich den anderen Elementen classname='bereich' zu, so daß sich die Farbe wieder ändert wenn ich mit der Maus drüberfahre? Wenn ich

top.frame1.document.getelementbyid("b" + 2).onmouseover = "this.style.classname='bereich'"

zuweise passiert absolut nix.

Also wie schreibt man das dann bitte?

Vielen Dank und mfg

Andreas Nagel

  1. Moin!

    Müßte das nicht sein:

      
    top.frame1.document.getelementbyid("b" + 2).onmouseover = function() { this.style.classname='bereich'; };  
    
    

    -- Skeeve

    1. Hallo,

      Müßte das nicht sein:

      top.frame1.document.getelementbyid("b" + 2).onmouseover = function() { this.style.classname='bereich'; };

        
      Was ist „classname“ eigentlich für eine CSS-Eigenschaft?  
        
      mfg. Daniel
      
      -- 
      [Experten raten von der Verwendung des Internet Explorers ab!](http://web.oesterchat.com/internet-explorer/)  
      [Mein SELF-stylesheet](http://danielrichter.da.funpic.de/SELFForumsCSS.html) | [Darum Firefox!](http://www.firefox-love.de/)  
      [Selfcode](http://forum.de.selfhtml.org/cgi-bin/selfcode.pl): [ie:{ fl:( br:> va:) ls:& fo:) rl:( n4:# ss:| de:> js:) mo:} zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%26+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%7C+de%3A%3E+js%3A%29+mo%3A%7D+zu%3A%7D)
      
      1. Hallo,

        Müßte das nicht sein:

        top.frame1.document.getelementbyid("b" + 2).onmouseover = function() { this.style.classname='bereich'; };

        
        >   
        > Was ist „classname“ eigentlich für eine CSS-Eigenschaft?  
        >   
        > mfg. Daniel  
          
        Erst einmal vielen Dank für die Antworten. Aber es funktioniert immer noch nix. Wenn ich also  
          
        top.Frame1.getelementbyid('b' + 2).onmouseover = function(){ this.classname='bereich';}  
          
        eingebe passiert weiter nix.  
          
        Wieso?  
          
        Ich bitte also wieder um Hilfe und bedanke mich wenn ich da noch was erfahren könnte.  
          
        Gruß Andreas
        
        1. Hallo,

          Erst einmal vielen Dank für die Antworten. Aber es funktioniert immer noch nix. Wenn ich also

          top.Frame1.getelementbyid('b' + 2).onmouseover = function(){ this.classname='bereich';}

          eingebe passiert weiter nix.

          Wieso?

          Es gibt in JavaScript keine Methode „getelementbyid“.

          Ich bitte also wieder um Hilfe und bedanke mich wenn ich da noch was erfahren könnte.

          Wie Martin schon sagte:
          Javascript ist Case-sensitive, d.h. du musst die groß-/Kleinschreibung beachten. Ersetze mal das „getelementbyid“ durch „getElementById“ und das „classname“ durch „className“, dann müsste es funktionieren.

          PS: Hat die Fehlerkonsole eigentlich nix gesagt?

          mfg. Daniel

    2. Hallo,

      Müßte das nicht sein:
      top.frame1.document.getelementbyid("b" + 2).onmouseover = function() { this.style.classname='bereich'; };

      ja, fast. ;-) Noch besser:

      top.frame1.document.getelementbyid("b" + 2).onmouseover = function() { this.className='bereich'; };

      Erstens hat, wie auch Daniel schon richtig bemerkte, className im style-Objekt nichts verloren; zweitens möchte es bitte ein großes 'N' haben. Javascript ist case-sensitive!

      Schönes Wochenende,
       Martin

      --
      Die Zeit, die man zur Fertigstellung eines Projekts wirklich braucht, ist immer mindestens doppelt so lang wie geplant.
      Wurde dieser Umstand bei der Planung bereits berücksichtigt, gilt das Prinzip der Rekursion.