如何解决表行内冲突的单击事件
How to resolve conflicting click-events inside table-row?
我使用jQuery使HTML表行在单击时展开。单击任何其他行将折叠以前打开的行(根据需要)。
HTML:
<table class="table table-hover">
<tbody>
<tr>
<td>
Click to expand
<div class="details hidden" ><a href="#" class="collapse-row">Close</a></div>
</td>
</tr>
</tbody>
</table>
JavaScript:
$('tr:not(a.collapse-row)').click(function(){
console.log("Expand row");
$('.details').addClass("hidden");
$(this).find('.details').removeClass("hidden");
});
$('.collapse-row').click(function(e){
e.preventDefault();
console.log("Collapse row");
$('.details').addClass("hidden");
});
演示:http://www.bootply.com/KGu1lDO9PS
但是,我还需要一个额外的链接(或按钮)来折叠行。有没有办法解决冲突的点击事件?我尝试了:not
选择器(如演示中所示),同时也使用了z-index
,但没有成功。
您需要使用e.stopPropagation()
$('.collapse-row').click(function(e){
e.preventDefault();
e.stopPropagation();
console.log("Collapse row");
$('.details').addClass("hidden");
});
这应该有效:
$('tr').click(function() {
// Expand clicked row
$(this).find('.details').removeClass("hidden");
// Hide all other rows
$(this).siblings().find('.details').addClass("hidden");
})
$('.collapse-row').click(function(e){
e.preventDefault();
// Close to open row
$(this).addClass("hidden");
})
http://www.bootply.com/KJV4AhxMRO
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 单击F5时如何停止页面加载
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- Jquery冲突单击
- JQuery图像悬停并单击冲突
- 单击<视频>与Firefox冲突'他的原生行为
- 单击“jQuery”中的函数冲突
- 鼠标左键单击与 JavaScript 中的右键单击例程冲突
- 在 $('html').click() 之外单击时关闭图像;与打开的图像冲突
- 与JS冲突 - 目标首先扩展器而不是单击的扩展器
- 链接单击上的Javascript和Jquery无冲突功能
- 由于滚动冲突,JQuery在单击或模糊、停止或终止功能时进行查询
- 如何解决表行内冲突的单击事件
- 将事务与setTimeout冲突,然后单击
- CSS3动画与单击冲突
- 在vejs中单击鼠标事件冲突
- jQuery美元(文档).单击冲突
- 同一元素冲突上的两个单击处理程序
- jQuery.focusout/.单击冲突