gpt4 book ai didi

jquery - 如何让子元素可见不可见维护正确的父子关系

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:59 25 4
gpt4 key购买 nike

我制作了一个有子元素的 div,这些子元素也有子元素。我希望当用户单击“显示”按钮时,将出现子元素。同时将设置“隐藏”按钮而不是“显示”按钮。如果用户点击“隐藏”按钮,则会发生相反的事件。我可以成功地放置一些 jQuery 代码。但问题是,当任何人点击“显示”按钮时,它会显示每个子元素和子元素的子元素。但是,我希望如果用户点击“A”元素上的“显示”按钮,它只会打开 A 的 child ,如果他们点击 A 的 child 上的“显示”按钮,那么应该只显示 A 的 child 的 child .

这是我的工作示例:http://jsfiddle.net/learner73/PcNu2/

<div class="box">
<ul>
<li>
<div class="row">
<p class="left">A</p>
<a href="#" class="right showButton">Show</a>
<a href="#" class="right hideButton">Hide</a>
</div>
<ul class="child">
<li>
<div class="row">
<p class="left">- A's Child 1</p>
<a href="#" class="right showButton">Show</a>
<a href="#" class="right hideButton">Hide</a>
</div>
<ul class="child child2">
<li>
<div class="row">
<p class="left">- A's Child 1's child 1</p>
</div>
</li>
<li>
<div class="row">
<p class="left">- A's Child 1's child 2</p>
</div>
</li>
</ul>
</li>
<li>
<div class="row">
<p class="left">- A's Child 2</p>
<a href="#" class="right showButton">Show</a>
<a href="#" class="right hideButton">Hide</a>
</div>
<ul class="child child2">
<li>
<div class="row">
<p class="left">- A's Child 2's child 1</p>
</div>
</li>
<li>
<div class="row">
<p class="left">- A's Child 2's child 2</p>
</div>
</li>
</ul>
</li>
</ul>
</li>
<li>
<div class="row">
<p class="left">B</p>
<a href="#" class="right showButton">Show</a>
<a href="#" class="right hideButton">Hide</a>
</div>
<ul class="child">
<li>
<div class="row">
<p class="left">- B's Child 1</p>
</div>
</li>
</ul>
</li>
</ul>
</div>

最佳答案

我会在每个级别只使用一个按钮并相应地更新: http://jsfiddle.net/sbritton/J6c3z/

<div class="box">
<ul>
<li>
<div class="row">
<p class="left">A</p>
<a href="#" class="right showButton">Show</a>
</div>
<ul class="child">
<li>
<div class="row">
<p class="left">- A's Child 1</p>
<a href="#" class="right showButton">Show</a>
</div>
<ul class="child child2">
<li>
<div class="row">
<p class="left">- A's Child 1's child 1</p>
</div>
</li>
<li>
<div class="row">
<p class="left">- A's Child 1's child 2</p>
</div>
</li>
</ul>
</li>
<li>
<div class="row">
<p class="left">- A's Child 2</p>
<a href="#" class="right showButton">Show</a>
</div>
<ul class="child child2">
<li>
<div class="row">
<p class="left">- A's Child 2's child 1</p>
</div>
</li>
<li>
<div class="row">
<p class="left">- A's Child 2's child 2</p>
</div>
</li>
</ul>
</li>
</ul>
</li>
<li>
<div class="row">
<p class="left">B</p>
<a href="#" class="right showButton">Show</a>
</div>
<ul class="child">
<li>
<div class="row">
<p class="left">- B's Child 1</p>
</div>
</li>
</ul>
</li>
</ul>
</div>


$(".box").on('click','.showButton', function(){
$(this).parent().next("ul.child").show();
$(this).removeClass('showButton').addClass('hideButton').text('Hide');

});

$(".box").on('click','.hideButton', function(){
$(this).closest('li').find(".child").hide();
$(this).closest('li').find('.hideButton').removeClass('hideButton').addClass('showButton').text('Show');
});

关于jquery - 如何让子元素可见不可见维护正确的父子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23351104/

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