使用Javascript,如何显示<;tr>;在另一个之上<;tr>;悬停时,隐藏第二个<;tr>;?
JSFiddle: 我正在使用jQuery和Bootstrap。我有一个包含如下4个使用Javascript,如何显示<;tr>;在另一个之上<;tr>;悬停时,隐藏第二个<;tr>;?,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,JSFiddle: 我正在使用jQuery和Bootstrap。我有一个包含如下4个元素的表: <table class="table table-bordered"> <thead> <tr> <th>First Name</th> <th>Last Name</th> </tr> </thead> <tbody>
元素的表:
<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>
首先,我用classtable hover
隐藏这两行,方法是给它们一个hide
类,我只显示那些带有class表数据的行
我想要实现的是:当我用classtable data
悬停tr
时,我想用classtable hover
显示下一个和立即的tr
,隐藏“悬停的tr”
当我再次将鼠标移到外部时,我希望所有内容都能恢复,并且只看到带有类悬停数据的tr
不知道为什么我的代码不能工作。有什么想法吗?像这样:
$('table tbody tr').hover(function() {
if($(this).hasClass('hover-data')){
$(this).next().toggleClass('hidden');
}
});
像这样:
$('table tbody tr').hover(function() {
if($(this).hasClass('hover-data')){
$(this).next().toggleClass('hidden');
}
});
像这样:
$('table tbody tr').hover(function() {
if($(this).hasClass('hover-data')){
$(this).next().toggleClass('hidden');
}
});
像这样:
$('table tbody tr').hover(function() {
if($(this).hasClass('hover-data')){
$(this).next().toggleClass('hidden');
}
});
此选项在原始行上使用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:
我注意到bootstraphide
类有点太“强”,覆盖了show()
,所以我现在也将它们改为style=“display:none”
。在以下示例中,请改用自己的类,例如hideme
:
我使用委托事件(出于习惯,因此它们可以共享一个公共选择器),但两个单独的“普通”(静态)选择器也可能工作得很好。e、 g.此选项在原始行上使用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:
我注意到bootstraphide
类有点太“强”,覆盖了show()
,所以我现在也将它们改为style=“display:none”
。在以下示例中,请改用自己的类,例如hideme
:
我使用委托事件(出于习惯,因此它们可以共享一个公共选择器),但两个单独的“普通”(静态)选择器也可能工作得很好。e、 g.此选项在原始行上使用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:
我注意到bootstraphide
类有点太“强”,覆盖了show()
,所以我现在也将它们改为style=“display:none”
。在以下示例中,请改用自己的类,例如hideme
:
我使用委托事件(出于习惯,因此它们可以共享一个公共选择器),但两个单独的“普通”(静态)选择器也可能工作得很好。e、 g.此选项在原始行上使用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:
我注意到bootstraphide
类有点太“强”,覆盖了show()
,所以我现在也将它们改为style=“display:none”
。在以下示例中,请改用自己的类,例如hideme
:
我使用委托事件(出于习惯,因此它们可以共享一个公共选择器),但两个单独的“普通”(静态)选择器也可能工作得很好。e、 g.隐藏悬停的元素可能会阻止取消悬停事件的发生。你能解释一下(从最终用户的角度)总体目标是什么吗?因为我发现这个破碎的例子令人困惑。是的,用户故事是这样的:我有一个名字列表。当我将鼠标悬停在某个特定的人身上时,我希望看到我可以执行的操作列表,例如“编辑用户”、“删除用户”等。我希望这个新的操作列表与用户发生相同的位置。有点像覆盖层,但在顶部。我清除了吗?可能是您可以删除
并在上面显示编辑/删除
。隐藏将使hover无效。我希望您知道,在您的JSFIDLE示例中,引导有一个重要的显示:无隐藏,因此您将无法使用jquery.show()显示它;这些信息可能会对你有所帮助。@不,我不知道。谢谢。隐藏悬停的元素可能会阻止取消悬停事件的发生。你能解释一下(从最终用户的角度)总体目标是什么吗?因为我发现这个破碎的例子令人困惑。是的,用户故事是这样的:我有一个名字列表。当我将鼠标悬停在某个特定的人身上时,我希望看到我可以执行的操作列表,例如“编辑用户”、“删除用户”等。我希望这个新的操作列表与用户发生相同的位置。有点像覆盖层,但在顶部。我清除了吗?可能是您可以删除
并在上面显示编辑/删除
。隐藏将使hover无效。我希望您知道,在您的JSFIDLE示例中,引导有一个重要的显示:无隐藏,因此您将无法使用jquery.show()显示它;这些信息可能会对你有所帮助。@不,我不知道。谢谢。隐藏悬停的元素可能会阻止取消悬停事件的发生。你能解释一下(从最终用户的角度)总体目标是什么吗?因为我发现这个破碎的例子令人困惑。是的,用户故事是这样的:我有一个名字列表。当我将鼠标悬停在某个特定的人身上时,我希望看到我可以执行的操作列表,例如“编辑用户”、“删除用户”等。我希望这个新的操作列表与用户发生相同的位置。有点像覆盖层,但在顶部。我清除了吗?可能是您可以删除
并在上面显示编辑/删除
。隐藏将使hover无效。我希望您知道,在您的JSFIDLE示例中,引导有一个重要的显示:无隐藏,因此您将无法使用jquery.show()显示它;这些信息可能会对你有所帮助。@不,我不知道。谢谢。隐藏悬停的元素可能会阻止取消悬停事件的发生