Event Handling und Event Delegation
bearbeitet von OrlokHallo
> > Wobei zu beachten ist, dass _keine identischen_ Event Listener für _ein_ Element existieren dürfen, sprich, wenn man für das gleiche Element _mehr_ als einen Event Listener mit den _selben_ Argumenten registriert, dann wird der bestehende Listeneintrag durch die nachfolgenden überschrieben. Aber das nur nebenbei.
>
> Diese Nebenbemerkung hättest du dir verkneifen können. ;-) Da irrst du nämlich, glaub ich.
Von `element.onclick`{: .language-javascript} habe ich nichts geschrieben, da ich hoffte, durch konsequentes Ignorieren aller anderen Methoden die Leser dazu zu bringen, Events grundsätzlich mit der `addEventListener`-Methode zu verarbeiten. ;-)
Ich [zitiere](http://www.w3.org/TR/dom/#concept-event-listener) mal:
„The addEventListener(type, callback, capture) method must run these steps:
- If callback is null, terminate these steps.
- Append an event listener to the associated list of event listeners with type set to type, callback set to callback, and capture set to capture, **unless there already is an event listener in that list with the same type, callback, and capture**.“
Wenn du eine **anonyme Funktion** als Callback-Argument übergibst, wird in Ermangelung eines Bezeichners zur Differenzierung vermutlich der Function-Body verglichen und…
~~~ javascript
console.log(1) !== console.log(2)
~~~
…weshalb hier _nicht_ die **selben** Argumente übergeben wurden. ;-)
Gruß,
Orlok