Accordion打开/关闭所有内容按钮等
Accordion open/close all content button and more
我在网站内有一个响应手风琴功能,我想用一个按钮(打开)和(关闭)所有内容,当所有内容关闭时,这个按钮还可以将他的内容名称更改为(打开),而当所有内容打开时,则更改为(关闭)。
现在,当使用(打开)按钮时,已经打开的内容会再次关闭,加号和减号图标在内容关闭时不会以正确的方式显示(减号图标),反之亦然。
这是小提琴
有人能帮我吗?
// Accordion //
$('.header').click(function(){
$('.content',$(this).parent()).slideToggle();
$(this).toggleClass('active');
})
$('.toggle-btn').click(function(){
$('.content').slideToggle();
$(this).toggleClass('active');
})
好了:http://jsfiddle.net/w3srayj6/21/
// Accordion //
$(document).ready(function() {
$('.header').click(function(){
$('.content',$(this).parent()).slideToggle();
$(this).toggleClass('active');
$('.toggle-btn').addClass('active').trigger("change");
})
});
$(document).ready(function() {
$('.toggle-btn').change(function(){
var headers = $('.header');
var state = 'open';
$.each(headers,function(){
if($(this).hasClass('active'))
state = 'close';
});
if(state == 'open')
$(this).addClass('active')
$(this).text(state);
});
$('.toggle-btn').click(function(){
var current = $(this);
current.toggleClass('active');
current.trigger("change");
var contents = $('.content');
$.each(contents, function(){
if(!current.hasClass('active'))
$(this).slideUp();
else
$(this).slideDown();
});
var headers = $('.header');
$.each(headers, function(){
if(current.hasClass('active'))
$(this).addClass('active');
else
$(this).removeClass('active');
});
current.trigger("change");
})
});
// Read more //
$(window).scroll(function() {
if ($(this).scrollTop() < 20) {
$('.read-more').slideDown(200);
} else {
console.log('there');
$('.read-more').slideUp(200);
}
});
有时使用开关可能会有点棘手和混乱。
在这种情况下,我使用"hasClass"来确定项目是否已经打开。由于我们只有"打开"answers"关闭"状态,我们可以说,只要"打开"不是"活动的"(上面有活动的类),我们就应该将"活动"类标志添加到所有标头和内容中。在相反的情况下也是如此。这样可以确保已经切换的项目不会被重新切换。
要用按钮更改减号/加号图标,您必须选择特定的.header类和parent()和child()jQuery方法,如下所示:
$('.toggle-btn').click(function(){
$('.content').each( function() {
$(this).slideToggle();
$(this).parent().find('.header').toggleClass('active');
});
});
如果在切换发生后检查类active
,则可以根据切换的类是否处于活动状态来更改按钮的文本。
查看此更新的fiddle(经过编辑以更改图标)
相关文章:
- 点击相同的按钮打开模型,然后提交表单
- jQuery面板滑块通过单击按钮打开,但获胜't关闭
- Jquery selectmenu组合框在IE和Chrome中每当按钮打开时就会关闭
- 如何使用单选按钮打开本地 HTML 页面
- 如何通过单击图像按钮打开图像
- (Angular+Bootstrap)如何阻止两个日期选择器被同一按钮打开
- window.open在单击按钮打开新窗口时出错
- 如果按钮打开,则功能可转到网站
- 单击按钮打开窗口作为使用javascript的模式对话框
- 确定哪个按钮打开了Bootstrap 3模式
- 如何管理从多个按钮打开的“相同的jquery u界面”
- 单击按钮打开数字流PayPal框
- 无法使用 Chrome 扩展程序弹出窗口中的按钮打开新标签页
- 多个按钮打开相同的操作,但不同的 ID 容器
- Blogger上的Tumblr自定义分享按钮 - 打开弹出窗口
- 使用提交按钮打开多个鲍泽选项卡
- JQuery 切换按钮打开
- Jqgrid 单击自定义编辑按钮打开另一个页面
- 一个提交按钮打开两个页面 - 一个新窗口中
- 使用article_id按钮打开对话框