打开时如何关闭多个部分中的所有其他手风琴?

时间:2014-04-02 12:00:24

标签: javascript jquery css jquery-ui

编辑:我在没有使用jQuery UI手风琴的情况下找到了解决方案:  Jquery toggle (Click to show one div while hiding others)

JSFiddle:http://jsfiddle.net/sy34v/(不要介意左边的空格,这可能是因为禁用了列表编号)

如果我打开一个手风琴让我们说“列表窗口1”它即使我点击“列表窗口2”中的另一个手风琴也保持打开状态。

因此,如果我有4个手风琴部分,可以打开4个手风琴。怎么做到这样才能打开整个页面上的一个手风琴,如果我打开另一个,那么最后会关闭?它只在手风琴部分内工作。

这是jQuery:

$(document).ready(function () {
    $(".listWindow").accordion({
        header: ".accordionHeader",
        collapsible: true,
        active: false
    });
});

2 个答案:

答案 0 :(得分:0)

试试这个解决方案

http://jsfiddle.net/rm7fD/

$(document).ready(function () {
var titleClicked = "";

$(".listWindow").accordion({
    header: ".accordionHeader",
    collapsible: true,
    active: false,
    activate: function( event, ui ) {
        var title = $(this).find(".title").html(); 
        setTimeout(function(){
            if(titleClicked == title){
                $(".listWindow").each(function(){
                    if ($(this).find(".title").html() != title){                       
                        $(this).accordion("option", "active", false);
                    }
                });
           }
        }, 100);
    }
});  

$(".siteTitle").click(function () {
    event.stopPropagation();        
});

$(".accordionWrapper").click(function(){        
    titleClicked = $(this).closest(".listWindow").find(".title").text();
});

});

答案 1 :(得分:0)

你尝试过这种方法吗?

$(function() {
    var $accordions = $(".listWindow").accordion({
        header: ".accordionHeader",
        collapsible: true,
        active: false
    }).on('click', function() {
        $accordions.not(this).accordion('activate', false);
    });
});

基于:Close accordions if other accordian is open in jquery