Javascript 如何防止在同一tr的td内单击按钮时单击tr

Javascript 如何防止在同一tr的td内单击按钮时单击tr,javascript,html,jquery,Javascript,Html,Jquery,在表行中,我单击了事件,如onclick=“trDetailsModal(this,'id')”,我在模式中显示了详细信息。因此在tr内部,我在actions td下还有两个按钮,这些按钮也有onclick事件,比如onclick=“deleteRecord('id')” 我可以通过点击tr查看模式中的详细信息 现在的问题是,当我单击其中一个按钮时,tronclick也会被触发,并在模型中显示详细信息 因此,如何在单击其中一个按钮时停止tronclick 代码: $content .= '<

在表行中,我单击了事件,如
onclick=“trDetailsModal(this,'id')”
,我在模式中显示了详细信息。因此在tr内部,我在actions td下还有两个按钮,这些按钮也有onclick事件,比如
onclick=“deleteRecord('id')”

我可以通过点击tr查看模式中的详细信息

现在的问题是,当我单击其中一个按钮时,tr
onclick
也会被触发,并在模型中显示详细信息

因此,如何在单击其中一个按钮时停止tr
onclick

代码:

$content .= '<tr class="trClass" onclick="trDetail(this, '.$val->id.');">';
$content .= '<td>some value</td>';
$content .= '<td><button onclick="deleteRecord('.$val->id.')"></td>';
$content .= '</tr>';

function deleteRecord(id){

  $(".trClass").off("click");
  $("#myModal").hide();

}
$content.='';
$content.='some value';
$content.='';
$content.='';
函数删除记录(id){
$(“.trClass”)。关闭(“单击”);
$(“#myModal”).hide();
}

您需要已触发的事件,您需要

您需要已触发的事件,您需要

这通常是通过调用按钮的click事件来完成的,它可以防止事件冒泡

请参见下面的示例:您会注意到,当您单击按钮时,您只会看到控制台日志“button clicked”,而不会看到“row clicked”。这是因为
StopperPagation
阻止了
tr
的单击事件触发

$('tr')。在('click',函数(e){
log('row clicked');
});
$('.delete')。在('click',函数(e){
e、 停止传播();
log(“单击按钮”);
});

我的排
删除

这通常是通过调用按钮的click事件来实现的,它可以防止事件冒泡

请参见下面的示例:您会注意到,当您单击按钮时,您只会看到控制台日志“button clicked”,而不会看到“row clicked”。这是因为
StopperPagation
阻止了
tr
的单击事件触发

$('tr')。在('click',函数(e){
log('row clicked');
});
$('.delete')。在('click',函数(e){
e、 停止传播();
log(“单击按钮”);
});

我的排
删除

如何将其与onclick=“deleteRecord(id);”函数deleteRecord(此处获取的内容){what.stopPropagation}一起使用尝试将该行重构为
$content.=''
和deleteRecord
函数deleteRecord(event){event.stopPropagation();var id=event.target.getAttribute('data-id');…}
感谢skapicic,这是一个很好的建议,说明如何将其与onclick=“deleteRecord(id);”函数deleteRecord(此处获取的内容){what.stopPropagation}一起使用尝试将行重构为
$content.=''
和deleteRecord
函数deleteRecord(event){event.stopPropagation();var id=event.target.getAttribute('data-id');…}
感谢Skapic,这是一个很好的建议,在单击onclick=“deleteRecord(id);”函数deleteRecord(在这里得到什么){what.stopPropagation}是,有可能…请参阅Thank@David784,这很有帮助。有可能以这种方式使用它吗onclick=“deleteRecord(id);”函数deleteRecord(此处要获取的内容){what.stopPropagation}是的,有可能…请参阅Thank@David784,这很有帮助