我正在做一个简单的jquery手风琴效果,如下所示。
JQUERY
$(function ($) {
$('.Accordian').find('.Btn').click(function () {
$(this).next('.Content').slideToggle('fast');
$('.Content').not($(this).next()).slideUp('fast');
});
});
HTML
<div class="Accordian">
<div class="Btn"></div>
<div class="Content"></div>
</div>
这项工作非常棒,但如果内容放在.Btn
和.Content
之间,那么它会中断。
问题
答案 0 :(得分:5)
尝试使用siblings()
$(function ($) {
$('.Accordian').find('.Btn').click(function () {
//cache the value so that it can be used in the next statement
var $content = $(this).siblings('.Content').slideToggle('fast');
$('.Content').not($content).slideUp('fast');
});
});
答案 1 :(得分:1)
尝试使用.nextAll()
和.first()
来完成您的任务。实际上,我们已将.first()
用于安全目的。
$('.Accordian').find('.Btn').click(function () {
var targetElem = $(this).nextAll('.Content').first();
targetElem.slideToggle('fast');
$('.Content').not(targetElem).slideUp('fast');
});