Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.lang.javascript > #4724

Re: addEventListener funktioniert nicht wie gedacht

From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups de.comp.lang.javascript
Subject Re: addEventListener funktioniert nicht wie gedacht
Date 2015-09-26 13:52 +0200
Organization PointedEars Software (PES)
Message-ID <2967652.pP7tlEX89l@PointedEars.de> (permalink)
References <mu5h99.4n0.1@mid.maikkoenig.de> <mu5o4o.1bk.1@stefan.msgid.phost.de>

Show all headers | View raw


Stefan Reuther wrote:

> Dem geübten Blick fällt auf, dass der Unterschied ist, dass bei den
> funktionierenden Events ein Funktionsname steht, bei den nicht
> funktionierenden ein Funktionsaufruf. Es muss immer etwas aufrufbares
> stehen, also ein Funktionsname oder eine Closure.

Korrekt ist „ein Funktionsausdruck“ (“function expression”); nicht „eine 
Closure“.

<http://www.ecma-international.org/ecma-262/6.0/index.html#sec-types-of-source-code>

<https://en.wikipedia.org/wiki/Closure_(computer_programming)#Anonymous_functions>
| The term /closure/ is often mistakenly used to mean anonymous function
| (<https://en.wikipedia.org/wiki/Anonymous_function>).

Vgl. [falsch] <https://de.wikipedia.org/wiki/Closure_(Funktion)>:

| Eine Closure (oder Funktionsabschluss) ist ein Begriff aus der 
| Programmierung. Er beschreibt eine anonyme Funktion, die Zugriffe auf 
| ihren Erstellungskontext enthält.
| [sic]
 
> […] Außerdem sieht der Event-Listener das Objekt, an dem er hängt, als
> 'this', folglich musst du den nicht ausdrücklich durchreichen.

Das ist jedoch (leider) bisher nur ein Quasi-Standard, also formal nur für 
Event-Listener sicher, die über abwärtskompatible Event-Handler und Event-
Handler-Attribute hinzugefügt wurden.  

Standardkonform muss auf die currentTarget-Eigenschaft des Event-Objekts 
zugegriffen werden.

Ein Wrapper wird daher einen Algorithmus verwenden, der funktional identisch 
zu folgendem Ausdruck ist, wobei e die Referenz zum Event-Objekt sei:

  (e ? e.currentTarget || e.target : this) || window.event.srcElement

<http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventListener>
<http://www.w3.org/TR/2015/WD-dom-20150618/#concept-event-listener-invoke>

> Und schlussendlich sei noch an die CSS-Pseudoklasse :focus erinnert: um
> nur am CSS-Stil rumzufummeln, braucht's kein JavaScript.

ACK.

-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.

Back to de.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

addEventListener funktioniert nicht wie gedacht Maik Koenig <usenetspam@maikkoenig.de> - 2015-09-26 07:25 +0200
  Re: addEventListener funktioniert nicht wie gedacht Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-09-26 09:12 +0200
    Re: addEventListener funktioniert nicht wie gedacht Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-09-26 09:13 +0200
    Re: addEventListener funktioniert nicht wie gedacht Maik Koenig <usenetspam@maikkoenig.de> - 2015-09-26 18:58 +0200
  Re: addEventListener funktioniert nicht wie gedacht Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-09-26 09:16 +0200
  Re: addEventListener funktioniert nicht wie gedacht Stefan Reuther <stefan.news@arcor.de> - 2015-09-26 09:22 +0200
    Re: addEventListener funktioniert nicht wie gedacht Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-09-26 13:52 +0200
    Re: addEventListener funktioniert nicht wie gedacht Maik Koenig <usenetspam@maikkoenig.de> - 2015-09-26 18:49 +0200

csiph-web