Javascript 使用jquery多次单击按钮问题

Javascript 使用jquery多次单击按钮问题,javascript,jquery,Javascript,Jquery,我有以下html。我实现了以下jquery代码,但我的删除按钮单击了两次。基本上是一次编辑和一次删除。当我单击编辑时,只会发生一次单击,但当我单击删除时,首先删除按钮触发器,然后再进行编辑。我如何避免这种情况。请检查我的代码 $(".tools").live("click", function(e){ e.preventDefault(); alert('clicked on edit'); var n = $("a", this).attr('id'); ale

我有以下html。我实现了以下jquery代码,但我的删除按钮单击了两次。基本上是一次编辑和一次删除。当我单击编辑时,只会发生一次单击,但当我单击删除时,首先删除按钮触发器,然后再进行编辑。我如何避免这种情况。请检查我的代码

$(".tools").live("click", function(e){
    e.preventDefault();
    alert('clicked on edit');
    var n = $("a", this).attr('id');
    alert(n);
});

$(".tools").find('span').live("click", function(e){
    e.preventDefault();
    alert('clicked on delete');
    var n = $("a", this).attr('id');
    alert(n);
});

span(删除按钮)上的单击事件正在冒泡并触发
.tools
元素上的单击事件,该元素是您的编辑按钮

您可以使用以下方法防止事件冒泡:

旁注:
.live()
从jQuery 1.7开始就被弃用,取而代之的是
.on()
put
$(“.tools”)。在
$(“.tools”)之前解除绑定('click')
。live(“click”,函数(e){…

这是:

$(".tools").unbind('click');
$(".tools").live("click",function(e){ ....
//your script here

谢谢,我忘了做e.stopPropagation();但是如何用'on'和'find'来代替live$(“#ids”)。在(“.click”、“.tools span”、函数(e){})上,这样做可以解决'live'问题
$(".tools").find('span').live("click",function(e){
    e.preventDefault();
    e.stopPropagation();
    alert('clicked on delete');
});
$(".tools").unbind('click');
$(".tools").live("click",function(e){ ....
//your script here