如何强制 jQuery UI 对话框再次重绘或触发某些东西来强制调整大小

Posted

技术标签:

【中文标题】如何强制 jQuery UI 对话框再次重绘或触发某些东西来强制调整大小【英文标题】:how to force jQuery UI Dialog to redraw again or trigger something to force resize 【发布时间】:2016-08-07 22:17:08 【问题描述】:

显示对话框时,Dialog Widgetm 出现一些问题,显示如下:

但是当使用鼠标调整对话框大小时,这个问题消失了,调整了对话框的大小。 现在我想要的是通过代码强制调整对话框的大小。

这是我初始化对话框的方式以及我如何调用它:

$(document).ready(function () 
            $("#dialogAccess").dialog(
                autoOpen: false,
                height: 300,
                width:'auto',
                resize:'auto',
                modal: true,
                position: 
                    my: "center",
                    at: "center",
                    of: window
                ,
                open: function (event, ui) 
                    $(this).dialog('option', 
                        width: 300, height: 400, position: 
                            my: "center",
                            at: "center",
                            of: window
                        ,
                    );
                
            );
        );
        function accessQuestions(event) 
            $.ajax(
                url: someUrl,
                type: 'GET',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) 
                    if (msg.d == true) 
                        $("#dialogAccess").dialog("open");
                    
                
            );
        

如何触发调整大小事件或强制重新绘制对话框?

【问题讨论】:

这个“但是当使用鼠标调整对话框大小时,这个问题消失,调整对话框大小”到底是什么意思。对话框是否会立即调整到正确的大小,还是必须将其拖动到正确的大小?我假设是前者,但最好得到确认。 我的意思是需要使用鼠标调整到任意大小,然后对话框调整到正确大小。 【参考方案1】:

这个问题是css引起的,被ui的设计者修改了好几次。所以我从 jquery.ui 页面下载了原始文件并替换它。然后问题就消失了。

【讨论】:

以上是关于如何强制 jQuery UI 对话框再次重绘或触发某些东西来强制调整大小的主要内容,如果未能解决你的问题,请参考以下文章

jQuery UI 对话框 - 关闭后不打开

在引导模式中重绘或重新计算数据表的宽度

JFrame / JPanel不会更新重绘或重新验证

重绘或删除现有画布并创建具有已修改内容的新画布

如何强制秘银重绘而不进行差异化? (在秘银中整合德拉古拉)

如何设置与不同按钮相关的jQuery UI对话框定位?