Jquery 如何覆盖对行的单击?

Jquery 如何覆盖对行的单击?,jquery,preventdefault,Jquery,Preventdefault,我有一个表,每一行都分配了一个唯一的ID,这样我就可以单击该行,用jquery抓取它并编辑该行的数据。我喜欢点击整行以方便用户使用 在最后一列中,我有一个X,我希望能够单击它来删除该行。同样,它有一个唯一的ID,所以我可以识别每一行。我的jquery看起来像这样 $('.delrow').click(function(e) { e.preventDefault(); var id = $(this).attr('id'); id = id.substr(3);

我有一个表,每一行都分配了一个唯一的ID,这样我就可以单击该行,用jquery抓取它并编辑该行的数据。我喜欢点击整行以方便用户使用

在最后一列中,我有一个X,我希望能够单击它来删除该行。同样,它有一个唯一的ID,所以我可以识别每一行。我的jquery看起来像这样

    $('.delrow').click(function(e) {
    e.preventDefault();
    var id = $(this).attr('id');
    id = id.substr(3);
    if (confirm('Are you sure you want to delete this row?')) {
        $.ajax({
            url: "/rowdelete/?delid="+id,
            success: function(data) 
            {
                location.href="/";
            }
        });
    } else {
        return false;
    }   

});
这将删除该行,然后返回主页。它所做的是删除该行,然后继续使用行id为null的编辑模块,因为行单击的默认操作就是这样做的。在这一点上,我假设preventDefault只适用于表单操作,因此在这种情况下不起作用。如何覆盖默认的行单击操作


谢谢

看起来您想要阻止其他事件处理程序发生,因此您想要
event.stopImmediatePropagation()
event.stopPropagation()


这个链接可能会澄清一点:

使用
e.stopPropagation()
代替
e.preventDefault()
。简单

编辑:现在我不用手机接听,我想我应该多加一点。停止传播可能会产生不希望的影响。例如,如果要将事件添加到
$(窗口),请单击()?停止传播后,如果用户单击
x
,则不会触发此事件。更好的方法是这样想:

$('.row').click(function (event) {
    if ($(event.target).hasClass('delrow')) {
        return false;
    }
    // edit row
});

然后,您可以将自己的事件添加到
x
元素中。如果您愿意,您也可以将您的事件放在if语句中。。。这是一个偏好的问题。

我希望事情会那么容易。谢谢