阻止子按钮触发分配给父级的jquery事件

时间:2013-03-23 07:26:14

标签: jquery

我正在尝试阻止表格行内的按钮触发附加到行的事件

此解决方案有效,但我不喜欢它:

$('table.orders tr.item').live('click',function(){
    var id=$(this).attr('hrf');
    document.location.href = id;
});
$('table.orders tr.item .pdfIcon').live('click',function(e){
e.stopPropagation();
}); 

我不喜欢附加第二个事件的想法,以防止第一个事件发生。我应该可以从选择中删除它。

有人能建议更好的方法吗?

3 个答案:

答案 0 :(得分:1)

$('table.orders').on('click', 'tr.item', function (event) {
    if (!$(event.target).hasClass('pdfIcon')){
        var id=$(this).attr('hrf');
        document.location.href = id;
    }
});

答案 1 :(得分:0)

怎么样

$('table.orders tr.item').live('click',function(e){
    if ($(e.target).is('.pdfIcon')) return;
    var id=$(this).attr('hrf');
    document.location.href = id;
});

答案 2 :(得分:0)

尝试

$('table.orders').on('click', 'tr.item', function(event) {
    if ($(event.target).hasClass('pdfIcon')) {
        return;
    }
    var id = $(this).attr('hrf');
    document.location.href = id;
});

演示:Fiddle