J'essaie de basculer .abb-bar
, en utilisant $.toggle()
chaque fois que son parent (.abb
) obtient un clic. mais chaque fois que .abb-bar
obtient un clic, son basculer lui-même à cause de event-bubbling
. e.stopPropagation()
devrait résoudre le problème, mais cela ne fonctionne pas. ce qui peut être fait?stopPropagation() ne fonctionne pas pour l'événement délégué
HTML
<span class="col-auto entry-ops abb">
<i class="fa fa-bars"></i>
<div class="list-group abb-bar">
<button class="list-group-item list-group-item-action d-flex justify-content-center" data-user="nick">follow</button>
<button class="list-group-item list-group-item-action d-flex justify-content-center complain">complain</button>
<button class="list-group-item list-group-item-action d-flex justify-content-center show-entry-number" data-toggle="tooltip">'.$row['entry_id'].'</button>
</div>
</span>
JS
$(document).on('click', '.abb', function(e) {
e.stopPropagation();
$(this).children('.abb-bar').toggle();
});
stopPropagation arrêterait les événements de mise à feu qui sont les parents de celui-ci ... pas les enfants ... mais vous êtes assis sur le document, de sorte que le clic il a déjà obtenu. – epascarello
je n'ai pas compris pourquoi les gens déprécient d'autres réponses et ne donnent aucune raison pour cela – krishnar
@krishnar Votre réponse est probablement downvoted parce que la réponse ne comprenait que du code et aucun texte expliquant. Essayez d'ajouter une explication de ce qui est modifié par votre code pour créer une réponse mieux reçue. –