如何打开手风琴中的下一个标签?
How to open next tab in accordion?
我正在尝试制作一个打开第一个选项卡的手风琴。一个按钮应该打开下一个选项卡并关闭前一个选项卡。
到目前为止,它只是关闭了选项卡,但没有打开下一个选项卡,我很难弄清楚如何让它工作。
$(document).ready(function() {
$('.cat').click(function() {
$(this).parent().slideUp('fast');
$(".a-content").next().css('display', 'block');
});
});
.a-toggle {
cursor: pointer;
margin: 0;
}
.a-content {
display: none;
}
.a-content.default {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a-section">
<h4 class="a-toggle">1. Title</h4>
<div class="a-content default">
<p>Some text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">2. Title</h4>
<div class="a-content">
<p>More text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">3. Title</h4>
<div class="a-content">
<p>Even more text</p>
<button type="button" class="cat">Continue</button>
</div>
</div>
$(document).ready(function() {
$('.cat').click(function() {
const parent = $(this).parent();
parent.slideToggle();
const next = parent.next().next();
next.slideToggle();
});
});
.a-toggle {
cursor: pointer;
margin: 0;
}
.a-content {
display: none;
}
.a-content.default {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a-section">
<h4 class="a-toggle">1. Title</h4>
<div class="a-content default">
<p>Some text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">2. Title</h4>
<div class="a-content">
<p>More text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">3. Title</h4>
<div class="a-content">
<p>Even more text</p>
</div>
</div>
一行解决
你需要两件事:
- 设置一个新的
next()
因为 .a-content
不是它自己之后的下一个兄弟,它在 之间有 h4
- 然后在单击时,您需要使用
$(this)
将父元素设置为单击的元素
您可以通过添加 class 而不是设置 CSS inline
来改善这一点
$('.cat').click(function() {
$(this).parent().slideUp('fast').next().next().addClass('open'); //SlideToggle will work too
});
.a-toggle {
cursor: pointer;
margin: 0;
}
.a-content {
display: none;
}
.a-content.default, .a-content.open {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a-section">
<h4 class="a-toggle">1. Title</h4>
<div class="a-content default">
<p>Some text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">2. Title</h4>
<div class="a-content">
<p>More text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">3. Title</h4>
<div class="a-content">
<p>Even more text</p>
<button type="button" class="cat">Continue</button>
</div>
</div>
试试这个
$(document).ready(function() {
$('.cat').click(function() {
const $parent = $(this).parent();
$parent.slideUp('fast');
$parent.nextUntil(".a-content").next().css('display', 'block');
});
});
我正在尝试制作一个打开第一个选项卡的手风琴。一个按钮应该打开下一个选项卡并关闭前一个选项卡。 到目前为止,它只是关闭了选项卡,但没有打开下一个选项卡,我很难弄清楚如何让它工作。
$(document).ready(function() {
$('.cat').click(function() {
$(this).parent().slideUp('fast');
$(".a-content").next().css('display', 'block');
});
});
.a-toggle {
cursor: pointer;
margin: 0;
}
.a-content {
display: none;
}
.a-content.default {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a-section">
<h4 class="a-toggle">1. Title</h4>
<div class="a-content default">
<p>Some text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">2. Title</h4>
<div class="a-content">
<p>More text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">3. Title</h4>
<div class="a-content">
<p>Even more text</p>
<button type="button" class="cat">Continue</button>
</div>
</div>
$(document).ready(function() {
$('.cat').click(function() {
const parent = $(this).parent();
parent.slideToggle();
const next = parent.next().next();
next.slideToggle();
});
});
.a-toggle {
cursor: pointer;
margin: 0;
}
.a-content {
display: none;
}
.a-content.default {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a-section">
<h4 class="a-toggle">1. Title</h4>
<div class="a-content default">
<p>Some text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">2. Title</h4>
<div class="a-content">
<p>More text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">3. Title</h4>
<div class="a-content">
<p>Even more text</p>
</div>
</div>
一行解决
你需要两件事:
- 设置一个新的
next()
因为.a-content
不是它自己之后的下一个兄弟,它在 之间有 - 然后在单击时,您需要使用
$(this)
将父元素设置为单击的元素
h4
您可以通过添加 class 而不是设置 CSS inline
来改善这一点$('.cat').click(function() {
$(this).parent().slideUp('fast').next().next().addClass('open'); //SlideToggle will work too
});
.a-toggle {
cursor: pointer;
margin: 0;
}
.a-content {
display: none;
}
.a-content.default, .a-content.open {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a-section">
<h4 class="a-toggle">1. Title</h4>
<div class="a-content default">
<p>Some text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">2. Title</h4>
<div class="a-content">
<p>More text</p>
<button type="button" class="cat">Continue</button>
</div>
<h4 class="a-toggle">3. Title</h4>
<div class="a-content">
<p>Even more text</p>
<button type="button" class="cat">Continue</button>
</div>
</div>
试试这个
$(document).ready(function() {
$('.cat').click(function() {
const $parent = $(this).parent();
$parent.slideUp('fast');
$parent.nextUntil(".a-content").next().css('display', 'block');
});
});