Jquery单击事件传播

ozs*_*gal 15 jquery events click

我有一个表,其中点击事件绑定到其行(<tr>).<a>这些行中有一些元素,它们分配了自己的点击事件.

问题是,当我点击<a> 元素时,它还会触发来自父元素的click事件<tr>.我不想要这种行为; 我只是想<a>点击click事件.

码:

 // 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!"); });
Run Code Online (Sandbox Code Playgroud)

每当您单击锚点时,它都会从其父行触发事件.有任何想法吗?

rah*_*hul 26

你必须停止事件冒泡.在jQuery中你可以做到这一点

e.stopPropagation();
Run Code Online (Sandbox Code Playgroud)

在锚标签的onclick事件中.

$("a").live("click",function(e){alert("clicked!");e.stopPropagation();});
Run Code Online (Sandbox Code Playgroud)

编辑

看这篇文章

jquery Event.stopPropagation()似乎不起作用