【问题标题】:Autosize jQuery-dialog自动调整 jQuery 对话框
【发布时间】:2014-12-26 03:17:23
【问题描述】:

我有一个现在设置为特定高度的 jQuery UI 对话框:

$(".event").click(function () {
        var id=$(this).attr("data-id");   

        $("<div></div>")

            .addClass("modal-dialog")
            .appendTo("body")

            .dialog({
                close: function() { $(this).remove(); },
                modal: true,
                height: 600,
                width: 700
            })
            .load("/Home/users?xid=" + id);

    });

我希望我的对话框根据其中的内容调整其高度。 我尝试更改为height: auto,但它根本无法打开。

我还发现了这个帖子: Automatically resize jQuery UI dialog to the width of the content loaded by ajax 但我不明白如何将它应用到我自己的代码中。

【问题讨论】:

    标签: jquery jquery-ui-dialog


    【解决方案1】:

    我要做的是加载到子元素中,然后在load 回调中将对话框高度设置为子元素的高度:

    $(".event").click(function () {
        var id=$(this).attr("data-id");   
    
        var dialogElement = $("<div></div>")
            .addClass("modal-dialog")
            .appendTo("body")
            .dialog({
                close: function() { $(this).remove(); },
                modal: true,
                height: 600,
                width: 700
            });
        $("<div></div>").appendTo(dialogElement).load("/Home/users?xid=" + id, function(){
            dialogElement.dialog("height", $(this).height());
        });
    
    });
    

    您可能希望实际让它比孩子稍大,以便为所有 UI 留出空间。

    【讨论】:

    • 这非常好,而且很有效。不过只有一件事。使用此代码,对话框在页面的下方打开。有没有办法让我决定我想把它放在哪里?没有足够的代表来投票,但非常感谢!
    • api.jqueryui.com/dialog/#option-position 可以在设置高度时将位置设置回默认值。
    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多