7
votes

Cible en cliquant

Regardez ce code:

<div>
    <a href = "#"><span>Click me MAN !</span></a>
</div>

<script type = "text/javascript">
    window.onload = function () {
        document.body.addEventListener ("click", function (event) {
            var target = event.target;

            alert ("Returns \"" + target.nodeName + "\". Just want \"" + target.parentNode.nodeName + "\"")
        }, false);
    }
</script>


2 commentaires

Pourquoi vous écoutez-vous exactement pour un clic sur le corps au lieu de cibler simplement la balise d'ancrage?


@Matt: C'est une bonne idée de réduire au minimum les gestionnaires d'événements et d'utiliser le fait que la plupart des événements bouillonnent l'arbre Dom, une technique appelée délégation d'événement . Cela peut être ce que fait l'OP.


3 Réponses :


0
votes

Vous ne pouvez pas simplement utiliser

<span><a href="#">Click me</a></span> ?


2 commentaires

Quel est le point de la portée alors? Cela devient complètement inutile.


Comment pour toi figure? Les styles appliqués sur elle sont toujours valables pour le contenu du lien ...




2
votes

Ajoutez les conseils CSS pour JavaScript. Vous obtiendrez événement.Target que vous voulez.

a > *,
button > *{
  pointer-events:none;
}


0 commentaires