2

私は使用し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');
});

パネルが開いたときだけ知るにはどうすればよいですか?

4

2 に答える 2

2

http://api.jqueryui.com/accordion/#event-activate-イベントを確認します-パネルがアクティブ化(開かれた)されたときにトリガーされます。

于 2013-02-14T03:39:03.117 に答える
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文書化されていないようです...

于 2013-02-17T02:40:02.667 に答える