jQuery Accordion知道面板何时完成开放

时间:2013-02-14 03:36:26

标签: javascript jquery jquery-ui jquery-ui-accordion

我正在使用jQuery Accordion并且需要知道面板何时完成加载。我知道我需要绑定accordionchange事件,但我真的很困惑,我将如何知道面板何时打开。

如果我只是将alert()放在面板打开后显示的功能内,但它也会在面板关闭后显示:

$("#campaigns").accordion({ 
    event: 'click',
    active: false,
    collapsible: true,
    autoHeight: false,
    heightStyle: "content"
}).bind("accordionchange", function(event, ui) {
    alert('Panel opened and closed');
});

我怎么才能知道面板何时完成开放?

2 个答案:

答案 0 :(得分:2)

http://api.jqueryui.com/accordion/#event-activate - 查看事件 - 在面板激活(打开)时触发。

答案 1 :(得分:1)

最后让它按我想要的方式工作。以下是打开面板时的方式:

$("#campaigns").accordion({ 
    event: 'click',
    active: false,
    collapsible: true,
    autoHeight: false,
    heightStyle: "content",
    change: function(event, ui) {

        // See if we are opening a panel
        var allOpen = ui.oldHeader.length == 1 && ui.newHeader.length == 1 && ui.oldContent.length == 1 && ui.newContent.length == 1;
        var newOpen = ui.newHeader.length == 1 && ui.newContent.length == 1;
        if (allOpen || newOpen) {

            // Do something here each time the panel is opened

        }//end if

    }//end change
});

奇怪的是,change似乎没有记录......