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% Sie können feststellen, auf welches Element das Ereignis tatsächlich ausgelöst wurde, indem Sie event.target
in Ihrem Callback lesen.
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>
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.
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%Diese Methode kann bei einigen Browsern zu Speicherverlusten führen. Wenn jemand dies erfährt oder wertvolle Einsichten hat. Bitte kommentieren.
Warum nicht die Eigenschaft currentTarget Event verwenden? Ссылка
%Vor%Tags und Links javascript events