2014-04-30 99 views
0

我想通过委托搭乘事件 我在表格行中添加委托。 我也有一个按钮在行的单元格之一。 现在当我点击按钮的时候点击事件触发,但是点击事件也触发了 点击按钮时我不想点击点击触发。 [我的查询链接] [1]Jquery事件覆盖

$(function(){ 
    $("body").delegate("table tr","click",function(evt){ 
     alert("row clicked"); 
    }); 

    $("body").delegate("table tr input[type=button]","click",function(evt){ 
     alert("button clicked"); 
    }); 
}); 

http://jsfiddle.net/jjMVU/

回答

2

首先,delegate,取而代之的on被废弃。其次,你需要停止事件的传播。试试这个:

$("body").on('click', "table tr input[type=button]", function(evt){ 
    evt.stopPropagation(); 
    alert("button clicked"); 
}); 

Updated fiddle

+0

行单击事件现在不烧 我也想排点击事件,火灾,当按钮被按下不 – Swapy

+0

@Swapy不要忘记你需要在使用时交换参数的顺序,它是'on(event,selector,handler);'。我用一个完整的例子更新了我的小提琴。 –

0

这是因为事件冒泡的发生。为了防止这种情况发生,您必须在点击按钮时使用evt.stopPropagation()

所以你的第二个事件处理程序应该是这样的

$("body").delegate("table tr input[type=button]","click",function(evt){ 
    evt.stopPropagation(); 
    alert("button clicked"); 
});