我想做的是复制一个 Accordion 类型的 jQuery 小部件
我有以下代码:
$('a').on('click', function (e) {
var active = $(this).parent().next();
active.toggleClass('active');
active.siblings().not(active).removeClass('active');
e.preventDefault();
});
尽管 active.siblings().not(active).removeClass('active');不起作用 我希望它如何做 我基本上希望它选择所有 sibling 的 UL 标签和 sibling 的任何子 UL 标签,但排除事件/当前选择。
我已将此 fiddle 设置为示例 http://jsfiddle.net/7u3pw1hz/
最佳答案
问题是,其他 ul
元素不是兄弟,它们是当前 li
的兄弟 li
元素的子元素
$('a').on('click', function(e) {
var active = $(this).parent().next();
active.toggleClass('active');
active.parent().siblings().children('ul').removeClass('active');
active.find('ul').removeClass('active');
e.preventDefault();
});
ul ul.active {
max-height: 800px;
}
ul ul {
max-height: 0;
overflow: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li><span><a href="category.html">Shop</a> <i class="icon-expand_more"></i></span>
<ul class="active">
<li>
<span><a href="category.html">Sleeping Bags</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="category.html">Medium Sleeping Bags</a></li>
<li><a href="category.html">Winter Sleeping Bags</a></li>
<li><a href="category.html">Summer Sleeping Bags</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Swaddles</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Linen</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Clothing</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">My Room</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Tool Box</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Wellbeing</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Feed</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Bath</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Carriers</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
<li>
<span><a href="category.html">Gifts</a> <i class="icon-expand_more"></i></span>
<ul class="menu">
<li><a href="/shop/wraps/fitted-wraps">Fitted Wraps</a></li>
<li><a href="/shop/wraps/merino-wraps">Merino Wraps</a></li>
<li><a href="/shop/wraps/muslin-wraps">Muslin Wraps</a></li>
<li><a href="/shop/wraps/stretch-cotton">Stretch Cotton</a></li>
</ul>
</li>
</ul>
</li>
<li><span><a href="category.html">Brands</a></span></li>
</ul>
关于javascript - jQuery 选择除自己以外的所有 sibling 和 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31130023/