jquery - 如何使用浏览器调整 jquery ui 对话框的大小

标签 jquery css jquery-ui jquery-plugins jquery-ui-dialog

我打开 jquery ui 对话框并在其中加载一些内容。但是当我调整浏览器大小时,jq 对话框不会改变它的宽度/高度。我尝试了几件事但没有运气。这是我如何打开它:

$(document).ready(function () {
    var wWidth = $(window).width();
            var dWidth = wWidth * 0.9;
            var wHeight = $(window).height();
            var dHeight = wHeight * 0.9;

            $(".openDialog").live("click", function (e) {
                e.preventDefault();
                $("<div></div>")
                    .addClass("dialog")
                    .attr("id", $(this).attr("data-dialog-id"))
                    .appendTo("body")
                    .dialog({
                        title: $(this).attr("data-dialog-title"),
                        close: function () { $(this).remove() },
                        modal: true,
                        resizable: false,
                        show: 'fade',
                        width: dWidth,
                        height: dHeight,                    
                        create: function (event, ui) {
                            $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").css("display", "none");

                            $(this).parents(".ui-dialog").css("padding", 0);
                            $(this).parents(".ui-dialog").css("border", 0);
                            $(this).parents(".ui-dialog:first").find(".ui-dialog-content").css("padding", 0);

                            $(this).parents(".ui-dialog:first").find(".ui-dialog-content").css("background", "#000000");
                            $(this).parents(".ui-dialog:first").find(".ui-dialog-content").css("overflow", "hidden");

                        }  

                    })
                    .load(this.href);
            });
$(window).resize(function () {
            var wWidth = $(window).width();
            var dWidth = wWidth * 0.9;
            var wHeight = $(window).height();
            var dHeight = wHeight * 0.9;
            $(".openDialog").dialog("option", "width", dWidth);
            $(".openDialog").dialog("option", "height", dHeight);
        });
});

最佳答案

对话框打开后,除非调整大小,否则宽度和高度是静态的。将事件绑定(bind)到窗口调整大小,而不是更改它。

$(window).resize(function() {
    var wWidth = $(window).width();
    var dWidth = wWidth * 0.9;
    var wHeight = $(window).height();
    var dHeight = wHeight * 0.9;
    $("#data-dialog-id").dialog("option", "width", dWidth);
    $("#data-dialog-id").dialog("option", "height", dHeight);
});

关于jquery - 如何使用浏览器调整 jquery ui 对话框的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9879571/

相关文章:

jquery - 我如何获取 jquery-ui 自动完成小部件的上下文?

javascript - F5 之后加载 JQuery

javascript - 可拖动的 div 在拖动时留下一条线迹,可能吗?

javascript - 使用 jquery.each() 循环创建对象键

css - 是否可以在不更改 HTML 的情况下像这样进行左填充?

css - 背景位置的 IE9 CSS hack?

css - 无法在 IE9 的怪癖模式下减小 div 的宽度/高度

javascript - 显示 : none css issue in Chrome, Mozilla、IE11

javascript - 监听来自动态创建的组件的事件

javascript - 在 Chrome 扩展中执行 jQuery.ajax 请求时更改 cookie