javascript addEventListener, ohne untergeordnete Elemente auszuwählen

8

Ich brauche um Javascript nur für dieses Projekt zu verwenden. Entschuldigung, keine jQuery (ich schäme mich auch).

Ich füge ein addEventListener zu einem div hinzu. "Problem" ist, dass es auch für alle seine Kinder gilt.

Gibt es eine Möglichkeit, dies zu vermeiden und den Zuhörer nur für dieses div arbeiten zu lassen?

Vielen Dank im Voraus.

sieht mein Code so aus:

%Vor%     
john smith 17.12.2012, 16:55
quelle

3 Antworten

13

Sie können feststellen, auf welches Element das Ereignis tatsächlich ausgelöst wurde, indem Sie event.target in Ihrem Callback lesen.

%Vor%

Die andere Option wäre, dass Handler an die untergeordneten Elemente gebunden wären, um zu verhindern, dass das Ereignis den übergeordneten Handler erreicht, aber das ist mehr Arbeit und verbirgt möglicherweise Ereignisse von Dingen, die möglicherweise nach ihnen über dem übergeordneten Element lauschen. p>

Aktualisieren

In Anbetracht Ihres Beispielcodes sollten Sie dies tun können.

%Vor%

Beachten Sie auch, dass, wenn dies bei IE & lt; 9 weil addEventListener für diese nicht unterstützt wird.

    
loganfsmyth 17.12.2012, 16:58
quelle
1

Hier ist eine Alternative, die Ihre myObjDown-Funktion in Übereinstimmung mit einem typischen Event-Handler hält. (Verwendung von e.target als Referenz auf das Ereignisaufrufelement)

%Vor%

Es wurde vorgeschlagen, dass ..

Diese Methode kann bei einigen Browsern zu Speicherverlusten führen. Wenn jemand dies erfährt oder wertvolle Einsichten hat. Bitte kommentieren.

eine Alternative wäre in dieser Hinsicht

%Vor%     
Brett Caswell 11.01.2015 00:23
quelle
0

Warum nicht die Eigenschaft currentTarget Event verwenden? Ссылка

%Vor%     
Mario Trucco 29.05.2015 08:27
quelle

Tags und Links