0

当使用 ajax 填充 JQuery UI 手风琴面板时,一切正常,但面板的高度不依赖于内容。实际上面板是具有滚动条的一行。用于填充面板的脚本:

$(".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 回答