0

ajax を使用して JQuery UI アコーディオンのパネルを埋める場合、すべて正常に機能しますが、パネルの高さはコンテンツに依存しません。実際には、パネルはスクロールバーを持つ 1 行です。パネルを埋めるために使用されるスクリプト:

$(".accordion").accordion({
        header: '> div > h3',
        autoHeight: false,
        active: false,
        collapsible: true,
        beforeActivate: function (event, ui) {
            var id = ui.newPanel.attr('id');
            id = id.replace("QID_", "");

            $.ajax({
                url: '@Url.Action("GetAnswers")',
                data: { QuestionId: id },
                type: 'POST',
                async: false,
                success: function (result) {
                    $("#QID_" + id).html(result);
                }
            });
        }
    })

パラメータ autoHeight を false に設定して、パネルをソート可能にします。true に設定しても改善されません。回避策は、最初にパネルを空白で埋めることです。

<div id='QID_@item.QuestionId'>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</div>

うまくいけば、最善の解決策ではありません。パネルの高さに依存するコンテンツを取得するには? 助けてくれてありがとう!

4

1 に答える 1

0

その内容を更新しようとしましたか?

$(".accordion").accordion({
    header: '> div > h3',
    autoHeight: false,
    active: false,
    collapsible: true,
    beforeActivate: function (event, ui) {
        var id = ui.newPanel.attr('id');
        id = id.replace("QID_", "");

        $.ajax({
            url: '@Url.Action("GetAnswers")',
            data: { QuestionId: id },
            type: 'POST',
            async: false,
            success: function (result) {
                $("#QID_" + id).html(result);
                // Refresh
                $(".accordion").accordion().refresh();
            }
        });
    }
})

autoHeightそして、ドキュメントにオプションが見つかりません。heightStyle: "content"その代わりじゃないの?

于 2013-09-06T13:31:24.877 に答える