单击上的按钮时如何抑制上的Click事件?
我在表行上有一个执行操作的click事件。 但是,当我单击同一行上的按钮时,我想阻止行上点击事件,只需执行按钮操作,我不知道如何实现这一点。
我创建了一个 – > 小提琴 < – 来演示这个。 只需单击表格行,您就会看到一个按钮。 然后单击按钮。 您将看到再次执行row-click-event,同时单击按钮。 我该如何防止这种情况?
A B C 39.90 29 Dec 2012 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: 'Sub1 Sub2 1 2 3 4
' }); 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; })
您应该从该按钮所在的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: 'Sub1 Sub2 1 2 3 4
' }); $(this).find(".my_btn").on('click', function(){ $(this).closest('tr').unbind('click'); alert("clicked") }) $(this).find(".my_btn").show(); row.insertAfter($(this)); }); });
我希望这对你有用。