首页 文章

Twitter Bootstrap手风琴切换按钮无法正常工作

提问于
浏览
1

当我想使用一个按钮切换所有手风琴元素并且其中一些已经打开时,切换功能表现得非常奇怪 .

如果我实现此代码:

$('.corearea-wrapper .corearea-link').click(function(e) {
    e.preventDefault();
    mywrapper = $('.corearea-wrapper #' + $(this).parent().children('.row.fixedcol').attr('id'));
    if(mywrapper.hasClass('allopen')) {
        mywrapper.find('.collapse').collapse('hide');
        mywrapper.find('article').removeClass('active');
        mywrapper.removeClass('allopen');
    } else {
        mywrapper.find('.collapse').collapse('show');
        mywrapper.find('article').addClass('active');
        mywrapper.addClass('allopen');
    }
});

我的预期结果是:首先单击,关闭所有元素,打开,第二次单击打开所有元素,第三次单击全部关闭,等等 .

相反的是:首先单击,打开元素关闭,但关闭元素打开,第二次单击打开元素关闭(所有元素关闭),第三次单击,所有元素打开,第四次单击,所有元素打开等 .

在这里看演示:

http://jsfiddle.net/Lwrhk/

1 回答

  • 1

    在同一个问题上工作,我找到了你的问题,并用你的小提琴演奏并通过仅对已扩展或折叠的元素进行操作来使其工作:

    $('.corearea-wrapper .corearea-link').click(function(e) {
        e.preventDefault();
        mywrapper = $('.corearea-wrapper #' + $(this).parent().children('.row.fixedcol').attr('id'));
        if(mywrapper.hasClass('allopen')) {
            mywrapper.find('.collapse.in').collapse('hide');
            //mywrapper.find('article').removeClass('active');
            mywrapper.removeClass('allopen');
        } else {
            mywrapper.find('.collapse:not(.in)').collapse('show');            
            //mywrapper.find('article').addClass('active');
            mywrapper.addClass('allopen');
        }
    });
    

    工作jfiddle在这里:

    http://jsfiddle.net/RobbSadler/Lwrhk/12/

相关问题