gpt4 book ai didi

javascript - 隐藏元素中的元素不被隐藏

转载 作者:行者123 更新时间:2023-11-29 18:35:48 24 4
gpt4 key购买 nike

在尝试构建一个可以使用隐藏/显示功能过滤工作类型和办公室的页面时,我发现如果一个元素被隐藏,那么该元素下面的一个元素就会被“告知”隐藏,它实际上并没有隐藏。换句话说,隐藏仅在显示实际元素时才有效。

这是代码,要复制,隐藏办公室 2,然后隐藏开发人员,然后再次显示办公室 2。开发人员(“应该”隐藏)显示在办公室 2 中。

有解决办法吗? jquery 似乎也会隐藏“sub”元素,但实际上并没有。

<input  type="checkbox" id=office1 name="test"  class="link1" />Office 1<BR>
<input type="checkbox" name="office2" checked='true' class="link2"/>Office 2<BR>
<input type="checkbox" name="office3" checked='true' class="link3" />Office 3<BR>
<input type="checkbox" name="developer" checked='true' class="link4" />Developer<BR>
<input type="checkbox" name="receptionist" checked='true' class="link5" />Receptionist<BR>
<input type="checkbox" name="manager" checked='true' class="link6" />Manager<BR>
<table border='1'>
<tr>
<td class="toggle-item-link1"><B>Office 1</B><HR>
<div class="toggle-item-link6"><BR>Manager</div>
<div class="toggle-item-link6"><BR>Manager</div>
<div class="toggle-item-link6"><BR>Manager</div>
</td>
</tr>
<tr >
<td class="toggle-item-link2"><B>Office 2</B><HR>
<div class="toggle-item-link4"><BR>Developer</div>
<div class="toggle-item-link4"><BR>Developer</div>
<div class="toggle-item-link6"><BR>Developer</div>
<div class="toggle-item-link5"><BR>Receptionist</div>
</td>
</tr>
<tr>
<td class="toggle-item-link3"><B>Office 3</B><HR>
<div class="toggle-item-link4"><BR>Developer</div>
<div class="toggle-item-link4"><BR>Developer</div>
<div class="toggle-item-link5"><BR>Receptionist</div>
</td>
</tr>

<td>
</td>
</tr>
</table>
<script>
$(document).ready(function() {

$('[class^=link]').click(function() {
if ($(this).attr("checked")) {
var $this = $(this);
var x = $this.attr("className");
//when 'checked'

$('.toggle-item-' + x).show(1000);

return;
}
//when 'unchecked'
var $this = $(this);
var x = $this.attr("className");

$('.toggle-item-' + x).hide(1000);
});

});
</script>

最佳答案

.hide()动画速度只会在可见元素上运行,您也可以在其中为隐藏元素添加一个案例,就像这样(这里还有一些优化,只是减少了代码):

$('[class^=link]').click(function()  {
var x = $(this).attr("className");
if (this.checked) {
$('.toggle-item-' + x).show(1000);
} else {
$('.toggle-item-' + x).hide(1000).filter(':hidden').hide();
}
});

You can try out a demo here .我们只是在考虑已经 :hidden不会动画的元素并通过调用 .hide() 跳到它们执行 display: none; 没有动画速度。

关于javascript - 隐藏元素中的元素不被隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3326672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com