单击上的按钮时如何抑制上的Click事件?

我在表行上有一个执行操作的click事件。 但是,当我单击同一行上的按钮时,我想阻止行上点击事件,只需执行按钮操作,我不知道如何实现这一点。

我创建了一个 – > 小提琴 < – 来演示这个。 只需单击表格行,您就会看到一个按钮。 然后单击按钮。 您将看到再次执行row-click-event,同时单击按钮。 我该如何防止这种情况?

A B C
Button 39.90 29 Dec 2012
Button 1499.00 8 Jan 2013

CSS:

 .hidden2{ display: none; } 

jQuery的:

 $(document).ready(function() { $('#tab_open_deals tbody tr').off('click').on('click', function() { var row = $(''); row.load('/echo/html/', { html: '
Sub1Sub2
12
34
' }); row.insertAfter($(this)); $(this).find(".my_btn").off('click').on('click', function(){ alert("clicked") }) $(this).find(".my_btn").show(); }); });

用它来阻止传播事件

  event.stopPropagation(); 

看到这里的链接

你可以添加一个return false;click

 $(this).find(".my_btn").off('click').on('click', function () { alert("clicked"); return false; }) 

http://jsfiddle.net/VhYdD/4/

您应该从该按钮所在的TR中删除单击行为。 您可以使用像$(this).closest('tr')这样的jQuery方法,我们可以通过DOM从按钮中搜索以找到TR,或者您可以在jQuery中使用父函数找到父级。 一旦我们找到了我们正在寻找的元素(TR),我们就可以从中unbind点击function。

所以你的最终通话看起来像这样:

 $(this).closest('tr').unbind('click'); 

我已将其插入到您的代码中,它按预期工作,从TR中删除click事件

 $(document).ready(function() { $('#tab_open_deals tbody tr').on('click', function() { var row = $(''); row.load('/echo/html/', { html: '
Sub1Sub2
12
34
' }); $(this).find(".my_btn").on('click', function(){ $(this).closest('tr').unbind('click'); alert("clicked") }) $(this).find(".my_btn").show(); row.insertAfter($(this)); }); });

我希望这对你有用。