使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
Using Javascript, how can I show a <tr> on top of another <tr> on hover, hiding the second <tr>?
JSFiddle:http://jsfiddle.net/9u8tnh97/
我使用的是jQuery和Bootstrap。我有一个包含4个<tr>
元素的表,如下所示:
<table class="table table-bordered">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr class="hover-data">
<td>Mark</td>
<td>Otto</td>
</tr>
<tr class="hover-link hide">
<td colspan="2"><a href="#">Some link1</a></td>
</tr>
<tr class="hover-data">
<td>Larry</td>
<td>the Bird</td>
</tr>
<tr class="hover-link hide">
<td colspan="2"><a href="#">Some link2</a></td>
</tr>
</tbody>
</table>
这是我的Javascript:
$('table tbody tr').hover(function() {
if($(this).hasClass('hover-data')){
$(this).next().show();
$(this).hide();
} else {
$(this).prev().show();
$(this).hide();
}
});
首先,我通过给它们一个hide
类来隐藏table-hover
类的两行,而只显示table-data
类的那两行。
我想要实现的是:当我将类table-data
悬停在tr
上时,我希望显示类table-hover
的下一个和立即的tr
,并隐藏"悬停的tr"。
当我再次将鼠标移到外面时,我希望恢复所有内容,并且只看到tr
和类hover-data
不确定为什么我的代码不能工作。有什么想法吗?
这一个对原始行使用mouseenter
,对新行使用mouseleave
。
$('table tbody').on('mouseenter', 'tr.hover-data', function () {
$(this).next().show();
$(this).hide();
}).on('mouseleave', 'tr.hover-link', function () {
$(this).prev().show();).hide();
});
JSFiddle:http://jsfiddle.net/TrueBlueAussie/9u8tnh97/15/
我注意到引导程序hide
类有点太"强",并且覆盖了show()
,所以我现在也将其更改为style="display: none"
。请使用您自己的类,例如以下示例中的hideme
:http://jsfiddle.net/TrueBlueAussie/9u8tnh97/17/
我使用委托事件(出于习惯,因此它们可以共享一个公共选择器),但两个独立的"正常"(静态)选择器可能也会正常工作。例如。http://jsfiddle.net/TrueBlueAussie/9u8tnh97/16/
像这样:
$('table tbody tr').hover(function() {
if($(this).hasClass('hover-data')){
$(this).next().toggleClass('hidden');
}
});
https://jsfiddle.net/gqyrpnes/
相关文章:
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 使用Razor/C#循环浏览HTML表以获得每个<tr>
- react-让一个元素返回两个相邻的<tr>标签
- jQuery只隐藏<tr>在一张桌子上
- 尝试应用于<tr>在ng单击中
- 使用'从HTML表中提取行的内容<tr onclick=alertContents()>'
- 如何将类添加到<tr>标记
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- <TR>标记未订阅事件
- 如何迭代TR>img
- jquery如何删除<tr>标记
- jQuery在<TR>TR折叠时标签不起作用
- 访问特定<td>对于给定<tr>以及更改html
- 有没有任何方法可以将json对象存储在HTML标记的默认/自定义属性中,比如<tr>
- 我应该如何访问<tr>在jquery中
- javascript页面加载检查是否存在具有特定类的span(在<tr>下),如果不存在,则删除整个<
- 删除当前<tr>并且还删除<tr>在使用纯javascript之前
- 使用js:order<创建表时出现问题;tr>并且<td>
- TinyMCE-允许文本作为<表>和/或<tr>
- ng重复不使用表<tr>但是与列表<李>