Jquery单击事件传播

我有一个表,其中点击事件绑定到其行(

)。 这些行中有元素,并分配了自己的点击事件。

问题是,当我点击元素时,它还会从父

触发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( $("
").addClass("backFundo") ); $("body").append( $("
").addClass("window") .html("") .append( "O que deseja fazer?" +"
Editar" +"Excluir" ) .css({top:"20px"}) .fadeIn("slow") ); $(document).scrollTop(0); }); // Element event $("a").live("click",function() { alert("clicked!"); });

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

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

 e.stopPropagation(); 

在锚标签的onclick事件中。

 $("a").live("click",function(e){alert("clicked!");e.stopPropagation();}); 

编辑

看这篇文章

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

我会为

以及以下代码使用bind而不是live

$("a").bind("click", function(e){ alert("clicked!"); e.stopPropagation() });

所有将按预期工作,单击

事件处理程序代码将不会执行。

适用于所有现代浏览器。