gpt4 book ai didi

javascript - 仅展开单击的列

转载 作者:行者123 更新时间:2023-12-01 15:37:13 25 4
gpt4 key购买 nike

我有以下三列布局,我正在使用 Bootstrap 。当我单击一列时,该列旁边的每一列也会展开。出于某种原因,我无法在此处显示代码片段,因此我附上了我所得到的图像。
enter image description here

如果可能的话,我想改变这种行为。我想单击一列并仅展开该列而不展开其他列。关于如何实现它的任何想法?

$('li.submenu a[href="#"]').click(
function(e) {
e.preventDefault();
$(this).toggleClass('open');
$(this).next().toggle();
$('.col-md-4').toggleClass('flex-last');
return false;
});
ul.ul_submenu {
display: none;
}

.submenu a i {
transition: ease .3s;
}

.submenu a.open i {
transform: rotate(-90deg);
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container-fluid">
<div class="row">
<div class="col-md-4">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #1 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="col-md-4">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #1 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="col-md-4">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #1 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="col-md-4">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #1 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="col-md-4">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #2 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="col-md-4">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #3 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>

最佳答案

Bootstrap grid system使用 Flexbox 构建(如果您还没有,我建议您阅读它)。您的 HTML 结构当前是这样构建的,每一行都是一个组成部分,由 div.row 包裹。 ;您正在构建一个由三列组成的单行行。当其中一个 child (您的 ul submenu )在此 div.row 中时扩展,它实际上并没有扩展其他 child ,它扩展了包含的 div ( div.row )。因为包含 block 扩展,它向下推底部div.row我们真的无能为力。这就是它的工作原理。

所以如果你想要你在问题中指定的行为,你应该考虑这个 HTML 结构:构建三列,每列由 n 组成。行。这是一个工作示例(以全页模式运行)。一个副作用是垂直堆叠的顺序(尽管我认为这不是什么大问题)。

$('li.submenu a[href="#"]').click(
function(e) {
e.preventDefault();
$(this).toggleClass('open');
$(this).next().toggle();
$('.col-md-3').toggleClass('flex-last');
return false;
});
ul.ul_submenu {
display: none;
}

.submenu a i {
transition: ease .3s;
}

.submenu a.open i {
transform: rotate(-90deg);
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container-fluid">
<div class="col-md-4">
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #1 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #1 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #1 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="col-md-4">
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #2 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #2 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #2 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="col-md-4">
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #3 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #3 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="row">
<ul>
<li class="submenu" id="atag"><a href="#">Apparel & Accessories #3 <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Clothing <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu"><a href="#">Men <i class="fas fa-caret-down" style="color: grey;"></i></a>
<ul class="ul_submenu">
<li class="submenu">blabla</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>

关于javascript - 仅展开单击的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61725029/

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