【发布时间】:2014-01-22 06:53:47
【问题描述】:
我有一堆内容选项卡,每个面板都有展开折叠图标。由于一个一个地关闭所有展开的 div 非常手动,因此有一个全部展开和全部折叠按钮可以一次性展开和折叠。
这按预期工作。但是我需要补充的是,
在页面加载时,我需要 'collapse all' 按钮使类处于非活动状态,因为第一次加载页面时没有扩展 div。
当任何 div 展开时,应该从'collapse all' 按钮中删除非活动类,反之亦然。
这是我的代码
//expand/collapse all
$('.expandall-icon').click(function(){
$(this).addClass('expand-inactive');
$('.collapseall-icon').removeClass('collapse-inactive')
$('.inner-content').slideDown();
});
$('.collapseall-icon').click(function(){
$(this).addClass('collapse-inactive');
$('.expandall-icon').removeClass('expand-inactive');
$('.inner-content').slideUp();
});
//Collapse and expand data
$('.inner-content').hide();
$(".expand a").click(function (e) {
e.preventDefault();
$(this).parent().toggleClass('collapse');
$(this).closest('.content').find('.inner-content').slideToggle();
});
还有DEMO
通过默认添加 inactive 类尝试使用 if else 条件,但这不会删除 inactive 类,即使我正在检查扩展 div 的条件。
//expand/collapse all
$('.expandall-icon').click(function(){
$(this).addClass('expand-inactive');
$('.collapseall-icon').removeClass('collapse-inactive')
$('.inner-content').slideDown();
});
$('.collapseall-icon').addClass('collapse-inactive');
$('.collapseall-icon').click(function(){
$(this).addClass('collapse-inactive');
$('.expandall-icon').removeClass('expand-inactive');
$('.inner-content').slideUp();
});
//Collapse and expand data
$('.inner-content').hide();
$(".expand a").click(function (e) {
e.preventDefault();
$(this).parent().toggleClass('collapse');
$(this).closest('.content').find('.inner-content').slideToggle().toggleClass('datapanel_opend');
//expand all
if(!$(this).closest('.content').find('.inner-content').hasClass("datapanel_opend"))
{
$('div.collapseall-icon').removeClass('collapse-inactive');
}
else
{
$('div.collapseall-icon').addClass('collapse-inactive');
}
});
【问题讨论】:
-
尝试为全部展开和全部折叠创建一个按钮,当任何面板展开时,将按钮的名称和功能更改为全部折叠,反之亦然。
-
不能创建单个按钮,因为这是要求
-
@ArunPJohny 酷。看起来就是这样。。谢谢。让我试试