MichaelR: events per script zweisen mit funktionsparameter

Hallo,

Es werden mehrere Div-Elemente per Code

var Elm = document.createElement('div');

erzeugt, und dann in den Document-Tree eingehängt; diese Divs sollen u.a. ein Ereignis onclick erhalten

Elm.onclick = function(){//Code...;}

In dem Code-Block brauche ich die Referenz auf das jeweilige Element,d.h. das was man mit erreicht:

<body>

<div onclick="DoWas(this)">text</div>
...
</body>

Allerdings fällt mir nicht ein, wie ich das "this" oben bei Elm.onclick einbauen muss, um den gleichen Effekt zu erhalten.

Mit

Elm.onclick = function(){ // mach was mit "Elm" ...;}

wird zwar der jeweilige JS-Code ausgeführt, aber dabei wird immer das als letztes erstellte Div verwendet, das Div das in "Elm" zum Schluss enthalten ist..

Hat jemand einen Tipp für mich?

Danke + Grüße
Michael

  1. Elm.onclick = function(){//Code...;}

    Allerdings fällt mir nicht ein, wie ich das "this" oben bei Elm.onclick einbauen muss, um den gleichen Effekt zu erhalten.

    Du kannst innerhalb der Methode auf this zugreifen, z.B.

    function setCSSHover(){
     var elementsByClass = getElementsByClass("navitem");
     for(a in elementsByClass){
      elementsByClass[a].onmouseover = function mOver(){
       this.className = "navitem2";
      }
      elementsByClass[a].onmouseout = function mOut(){
       this.className = "navitem";
      }

    }
    }

    Du kannst also auch wrappen, um this an eine andere Methode zu übergeben.