gpt4 book ai didi

javascript - 如何显示/隐藏多个 div

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:06 25 4
gpt4 key购买 nike

我知道这个问题之前已经被问过很多次了,但是除了对 jQuery 文件进行硬编码之外我找不到解决方案...因此,我必须在用户按下按钮时显示描述,并且有多个描述,每个描述都有各自的按钮。

这就是我到目前为止所做的......

HTML:

<div id="trDest1" class="trDest">
<!-- Some content here -->
<button class="expandArrow">Show</button>
<button class="closeArrow">Hide</button>
</div>
<div id="trDest1_details" class="details">
<p>show details</p>
</div>

<div id="trDest2" class="trDest">
<!-- Some content here -->
<button class="expandArrow">Show</button>
<button class="closeArrow">Hide</button>
</div>
<div id="trDest2_details" class="details">
<p>show details</p>
</div>

<div id="trDest3" class="trDest">
<!-- Some content here -->
<button class="expandArrow">Show</button>
<button class="closeArrow">Hide</button>
</div>
<div id="trDest3_details" class="details">
<p>show details</p>
</div>

CSS:

.closeArrow {
display: none;
}

.visible-description .expandArrow {
display: none;
}

.visible-description .closeArrow {
display: inline;
}

.visible-description + .trip_details {
display: block;
}

.details {
display: none;
}

jQuery:

  // Show/hide Descriptions
$('#trDest1 .expandArrow').click(function(){
$('#trDest1').addClass('visible-description');
$('#trDest1_details').show();
});

$('#trDest1 .closeArrow').click(function(){
$('#trDest1').removeClass('visible-description');
$('#trDest1_details').hide();
});

// Show/hide Descriptions
$('#trDest2 .expandArrow').click(function(){
$('#trDest2').addClass('visible-description');
$('#trDest2_details').show();
});

$('#trDest2 .closeArrow').click(function(){
$('#trDest2').removeClass('visible-description');
$('#trDest2_details').hide();
});

// Show/hide Descriptions
$('#trDest3 .expandArrow').click(function(){
$('#trDest3').addClass('visible-description');
$('#trDest3_details').show();
});

$('#trDest3 .closeArrow').click(function(){
$('#trDest3').removeClass('visible-description');
$('#trDest3_details').hide();
});

如您所见,我为每个 div 编写了一个函数,我想知道是否有另一种方法来清理这些函数并仅添加一个可以执行相同操作的函数。 .

我无法更改 HTML 代码的结构。

jsfiddle:https://jsfiddle.net/q84Lnw0y/

最佳答案

您可以使用以下代码段来定位相关元素:

$('.expandArrow, .hideArrow').on('click', function(){
var isExpand = $(this).hasClass('expandArrow');
$(this).closest('.trDest').toggleClass('visible-description', isExpand).next().toggle(isExpand);
});

-jsFiddle

描述:

$(this).closest('.trDest') // Get closest ancestor with class trDest
.toggleClass('visible-description', isExpand) // Add class `visible-description` if second param `isExpand` is true, else remove class
.next() // Get immediate next sibling element
.toggle(isExpand); // Show if `isExpand` is true, else hide it

关于javascript - 如何显示/隐藏多个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33843791/

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