light: prototype.js events...

Hallo Selfhtml-Forums-Community,

ich bin grade dabei eine "Interaktive" Seite,
die ich im fx entwickelt habe, nun mit prototype.js auszustatten,
um auch die anderen Browser wie Safari Opera und  MSIE zum Laufen zu bringen.

soweit geht bis jetzt auch alles.
womit ich leider noch ein Problem habe sind die Events.
Dokument weite Events funktionieren schon -
diese habe ich einfach wie folgt gesetzt:

  
  document.observe('mousemove', handleMouseMove);  

jetzt wollte ich für bestimmte div Elemente auch noch ein mouseover setzen.
eigentlich hatte ich das so erledigt:

  
  obj.setAttribute("onmouseover","BMOver(this);");  
  /*obj 'ist' das Div Element welches den Button darstellt.*/  

nur das sagt dem IE nicht zu.
deshalb wollte ich es jetzt auch über prototype.js machen.
habe es auch schon versucht, nur irgendwie funktioniert das nicht so wie ich gedacht hab
und ich kann den Fehler auch nicht ausmachen-
scheinbar ruft er immer die Funktion direkt auf?!

  
  Event.observe(obj, 'mouseover', BMOver(this));  

Ich freu mich wenn mir jemand von Euch weiterhelfen kann!

Leuchtende Grüße

Stefan

  1. Hi,

    obj.setAttribute("onmouseover","BMOver(this);");

    
    > nur das sagt dem IE nicht zu.  
      
    nein. Ihm sagt jedoch zu, statt des onmouseover-Attributs einfach die onmouseover-Eigenschaft zu setzen. Dann kann man sich auch den Umweg über einen String sparen und direkt eine ausführbare Funktion injizieren.  
      
    
    > ~~~javascript
      
    
    >   Event.observe(obj, 'mouseover', BMOver(this));  
    > 
    
    

    Eine _ausführbare_ Funktion, nicht das Ergebnis einer Funktions-Ausführung. Mache Dir übrigens auch Gedanken darüber, was 'this' wohl ist, wenn Jahre später in einem völlig anderen Kontext das Ereignis feuert.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. @Cheatah Danke! klar wo du das mit dem Ergebnis erwähnst...
      -Hab wohl einfach aufm schlauch gestanden...
      ich habe das onmouseover Attribut per Script gesetzt weil ich so automatisch alle vorkommenden Buttons einbinden kann ohne das diese events auch im Seiten Quelltext stehen müssen oder hab ich dich falsch verstanden?

      Das this war durch diese Setzung auch eindeutig das Event-erzeugende Objekt
      oder hätte es da Probleme geben könne?
      (im Fx hat es immer sauber funktioniert...)
      Funktions-Ausführung. Mache Dir übrigens auch Gedanken darüber, was 'this' wohl ist, wenn Jahre später in einem völlig anderen Kontext das Ereignis feuert.

      Leuchtende Grüße

      Stefan

  2. Hallo,

    Event.observe(obj, 'mouseover', BMOver(this));

      
    $(obj).observe('mouseover', BMOver);  
      
    function BMOver (event) {  
       var element = event.element();  
       alert(element); // == obj  
    }  
      
    <http://www.prototypejs.org/api/event>  
      
    Mathias
    
    -- 
    [SELFHTML aktuell Weblog](http://aktuell.de.selfhtml.org/weblog/)
    
    1. @Mathias: Danke!!
      funktioniert richtig gut!

      Leuchtende Grüße

      Stefan