Jquery click event propagation
J'ai une table avec cliquez sur les événements liés à ses lignes (<tr>
). Il y a <a>
éléments à l'intérieur de ces lignes avec leur propre cliquez sur événements affectés.
Problème c'est que quand je clique sur le <a>
élément, il déclenche également l'événement click du parent <tr>
. Je ne veux pas ce comportement, je veux juste le feu à la <a>
cliquez sur l'événement.
Code:
//Event row TR
$("tr:not(:first)").click(function() {
$(".window, .backFundo, .close").remove();
var position = $(this).offset().top;
position = position < 0 ? 20 : position;
$("body").append( $("<div></div>").addClass("backFundo") );
$("body").append( $("<div></div>").addClass("window")
.html("<span class=close><img src=Images/close.png id=fechar /></span>")
.append( "<span class=titulo>O que deseja fazer?</span>"
+"<span class=crud><a href=# id=edit>Editar</a></span>"
+"<span class=crud><a href=# id=delete codigo="
+ $(this).children("td:first").html()
+ ">Excluir</a></span>" )
.css({top:"20px"})
.fadeIn("slow") );
$(document).scrollTop(0);
});
//<A> Element event
$("a").live("click",function() { alert("clicked!"); });
Chaque fois que vous cliquez sur l'ancre, il déclenche l'événement à partir d'elle ligne parent. Des idées?
source d'informationauteur ozsenegal
Vous devez vous connecter pour publier un commentaire.
Vous devez vous arrêter de remontée d'événements. En jQuery, vous pouvez le faire en
dans l'événement onclick de la balise d'ancrage.
Modifier
Voir ce post
jquery Événement.stopPropagation() ne semble pas fonctionner
Je voudrais utiliser
bind
au lieu delive
pour les deux<tr>
et<a>
et le code suivant$("a").bind("click", function(e){ alert("clicked!"); e.stopPropagation() });
pour
<a>
.Tous
<a href>
'fonctionne comme prévu et<tr>
gestionnaire d'événement de code ne sera pas exécuté après avoir cliqué sur<a>
.Fonctionne dans tous les navigateurs modernes.