在页面上有一个table,里面的td在页面加载时设置了mouseup事件,用户点击td后,会向数据库插入新记录,记录插入成功后,在td里动态添加一个div,显示记录添加成功。同时div中也添加了一个体<A>,用做删除这条记录。
现在的问题是,当我点击<A>的时候,又触发了td的mouseup事件,结果又在表中增加了一个记录。我已经在添加新的DIV时将td的onmouseup设置为null(td.onmouseup = null;),不知为什么没起作用。

解决方案 »

  1.   

    事件流,涉及到事件冒泡了,在<a>的onmouseup中return false;
      

  2.   

    在A标签中的onclick事件a.onclick = function(event){
    event=window.event||event;
    if(event.stopPropagation){
    event.stopPropagation();
    }else{
    event.e.cancelBubble = true ;
    }
    }
      

  3.   

    上面错了不应该是onclick应该是onmouseup
      

  4.   

    我试了一下,在onmouseup中写return false;不管用,但用4楼的方法可以。为什么return false不行呢?
      

  5.   

    嗯,return false在jquery中可以取消包括 对使用live 绑定的事件 的事件冒泡,直接用js的话,就像4L那样写
      

  6.   

    return false  是阻止系统默认操作,如在a标签的onclick中return false ;可以阻止页面跳转
    stopPropagation及cancelBubble是用来阻止事件冒泡的