jQuery 手风琴,另外 div 待切换

jQuery accordion with additional div to be toggled

我正在尝试构建一个简单的 jQuery 手风琴,但在页面加载时,手风琴占页面宽度的 50%,另外 50% 有内容。打开手风琴时,内容将消失(使用 hide('slow');slideToggle('slow'); 滑出)并且手风琴将变为 100%。一次可以展开多个部分,但在所有部分都关闭之前,内容不会返回查看。

我现在拥有的东西在第一次点击时完美运行,内容开始并且手风琴打开和展开,关闭相同的部分也可以在它关闭和内容的地方工作 returns,但是如果我打开一个然后打开另一个内容 returns 和手风琴打开第二部分但回到 50%。

HTML:

<div class="wrapper">
    <div class="col-half left accord-left">
        <div class="accordion">
            <div class="section"><!-- first section -->
                <div class="title">
                    <h3>Clickable title 1</h3>
                </div>
                <div class="accord-text content-block" style="display: none;">
                    This is section text
                </div>
            </div>
            <div class="section"><!-- second section -->
                <div class="title">
                    <h3>Clickable title 1</h3>
                </div>
                <div class="accord-text content-block" style="display: none;">
                    This is section text
                </div>
            </div>
        </div>
    </div>
    <div class="col-half right accord-right content-block">
        This is the content to be removed when the accordion is open
    </div>
</div>

jQuery:

    jQuery('.accord-text').hide();
    jQuery('.section').click(function(){
        var secclick = jQuery(this);
        if(jQuery('.accord-text:visible').length) {
            jQuery('.accord-right').show('slow', function(){
                jQuery('.accord-left').addClass('col-half');
                jQuery('.accord-left').removeClass('col-full');
                jQuery('.accord-text',secclick).toggle("slow");
                jQuery('.title',secclick).toggleClass('open');
            });
        } else {
            jQuery('.accord-right').hide('slow', function(){
                jQuery('.accord-left').removeClass('col-half');
                jQuery('.accord-left').addClass('col-full');
                jQuery('.accord-text',secclick).toggle("slow");
                jQuery('.title',secclick).toggleClass('open');
            });
        }
    });

我认为它需要做的是检查是否点击了打开的部分,如果是则关闭该部分并显示右栏,但如果不是则打开新的部分并保留右栏隐藏了,我不知道怎么做。

我修改了 jQuery 所以当一个部分被点击时,它会 hide/keep 隐藏右栏, widen/keep 留在 100% 并切换手风琴 open/closed,然后在 1250 毫秒后(由于效果缓慢),它将通过检查文本部分的可见性来检查手风琴是否打开,如果它们全部关闭,则它将手风琴缩小回 50% 并滑动右列返回。

    jQuery('.accord-text').hide();
    jQuery('.section').click(function(){
        var secclick = jQuery(this);
        jQuery('.accord-right').hide();
        jQuery('.accord-left').addClass('col-full');
        jQuery('.accord-left').removeClass('col-half');
        jQuery('.title',this).toggleClass('open');
        jQuery('.accord-text',this).toggle("slow");
        setTimeout(function(){
            if(jQuery('.accord-text:visible').length) {
            } else {
                jQuery('.accord-left').removeClass('col-full');
                jQuery('.accord-left').addClass('col-half');
                jQuery('.accord-right').slideDown('slow');
            }
        },1250);            
    });