Pete: IE - eventhandler hinzufügen mit Parameter

Hi
Ich hab folgende Funktion:

function selDown(el){  
    el.style.backgroundColor = '#8492B5';  
}

diese erwartet als Parameter ein Element. Wenn ich nun diese Funktion einem Element als Eventhanlder hinzufügen möchte (Muss nur Internet Explorer tauglich sein) entweder per attachEvent oder klassisch element.onclick = xy;

Wie kriege ich in diesen Parameter das jeweilige Element?

  1. Hallo,

    Ich hab folgende Funktion:

    function selDown(el){

    el.style.backgroundColor = '#8492B5';
    }

    
    >   
    > diese erwartet als Parameter ein Element. Wenn ich nun diese Funktion einem Element als Eventhanlder hinzufügen möchte (Muss nur Internet Explorer tauglich sein) entweder per attachEvent oder klassisch element.onclick = xy;  
    >   
    > Wie kriege ich in diesen Parameter das jeweilige Element?  
    
    Das musst Du in diesem Fall wahrscheinlich gar nicht. Bei einem Eventhandler zeigt this in der Eventhandlerfunktion auf das Objekt, welches den Event ausgelöst hat. Siehe selDown1 in meinem Beispiel.  
      
    Solltest Du wirklich einen Parameter übergeben müssen, geht das innerhalb einer anonymen Funktion der Form:  
      
    var func = function() {  };  
      
    ~~~html
      
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
            "http://www.w3.org/TR/html4/strict.dtd">  
    <html>  
    <head>  
    <title>Beschreibung der Seite</title>  
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
    <script type="text/javascript">  
    <!--  
    function selDown1(){  
        this.style.backgroundColor = '#8492B5';  
    }  
    function selDown2(el){  
        el.style.backgroundColor = '#8492B5';  
    }  
      
    window.onload = function() {  
     document.getElementById('p1').onclick = selDown1;  
     document.getElementById('p2').onclick = function() { selDown2(this) };  
    };  
    //-->  
    </script>  
    </head>  
    <body>  
    <h1>Test</h1>  
    <p id="p1">Test</p>  
    <p id="p2">Test</p>  
    </body>  
    </html>  
    
    

    viele Grüße

    Axel

    1. Wie kriege ich in diesen Parameter das jeweilige Element?
      Das musst Du in diesem Fall wahrscheinlich gar nicht. Bei einem Eventhandler zeigt this in der Eventhandlerfunktion auf das Objekt, welches den Event ausgelöst hat. Siehe selDown1 in meinem Beispiel.
      function selDown1(){
          this.style.backgroundColor = '#8492B5';
      }

      Wieder was gelernt, genau das habe ich gemeint.

      Vielen Dank