Hauptmenü

Untermenü

DOM-Scripting - Mehrere Event-Listener

1. Pas de problème

... wie der Franzose so schön sagt. Will man also mehrere Funktionen aufrufen, so gibt es zwei Möglichkeiten. Wenn man ohne Parameter arbeiten will, so kann man einfach den Event-Listener mehrmals mit den verschiedenen Funktionen aufrufen.


ele document.getElementById('link');
if (navigator.userAgent.match(/MSIE 8/))
{
  ele.attachEvent('onclick'machWas);
  ele.attachEvent('onclick'machNochWas);
}
else
{
  ele.addEventListener('click'machWasfalse);
  ele.addEventListener('click'machNochWasfalse);
}

2. Mit und ohne Parameter

Wie ich im vorherigen Abschnitt schon sagte, muss man bei Parametern immer mit einer anonymen Funktion arbeiten. Und dabei kann man dann auch mehrere Funktionen aufrufen.


if (navigator.userAgent.match(/MSIE 8/))
{
  ele.attachEvent('onclick', 
    function ()
    {
      machWas(bla);
      machNochWas();
    }
  );
}
else
{
  ele.addEventListener('click', 
    function()
    {
      machWas(bla);
      machNochWas();
    }
    , false
  );
}

Diese Schreibweise kann man auch dann einsetzen, wenn bei keiner Funktion ein Parameter übergeben werden muss.

3. Unterschiedliche Events aufrufen

Auch das funktioniert reibungslos.


if (navigator.userAgent.match(/MSIE 8/))
{
  ele.attachEvent('onmouseover'machDies);
  ele.attachEvent('onmouseout'machDas);
  ele.attachEvent('onclick'machNochWas);
}
else
{
  ele.addEventListener('mouseover'machDiesfalse);
  ele.addEventListener('mouseout'machDasfalse);
  ele.addEventListener('click'machNochWasfalse);        
}

Sollte es zumindest. Denn das ein oder andere Mal können ziemlich irritierende Dinge passieren. Darauf gehe ich aber bei einem zukünftigen Tutorial ein.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt