代码之家  ›  专栏  ›  技术社区  ›  at.

在jQueryUI对话框中将高度调整为与内容一样高,最大值为

  •  4
  • at.  · 技术社区  · 14 年前

    使用jQueryUI的对话框,我想弹出信息。我的问题是我想将对话框的高度设置为内容的高度。如果我不指定高度,这就完美了。高度将根据内容的高度自动计算。问题是如果内容很高,对话框也会变得很高,并进入窗口下面。。。在这种情况下,maxHeight也不能很好地工作。

    更新 :原来我想要的不仅仅是一个最大高度。我想要一个最大初始高度。因此,在用数据加载对话框之后,它只能增长到一定的高度。但在那之后,你就可以打开窗户了。很容易做到这一点:

    $('<div><div></div></div>').attr('title', options.title).appendTo('body').dialog({
        open: function() {
            $(this).children().css('maxHeight', maxInitialHeight).load(url, function() {
                thisDialog.$dialog.dialog('option', 'position', 'center');
            });
        }
    });
    

    它将从“url”中动态加载一个对话框,其中的内容最大为maxInitialHeight高度。嵌套的两个div是必需的。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Bertrand Marron    14 年前

    您可以将内容插入 <div class="dialog-data" />

    然后,您可以使用CSS指定 max-height overflow: auto div.dialog-data .

        2
  •  0
  •   Vitaly Batonov    14 年前

    也许是这样

    options.open = function() {
        var dialog = $(this).dialog('widget');
        var content = dialog.find('.ui-dialog-content');
        $.ajax({
            url: 'this your url',
            success: function(result, status, xhr) {
                content.empty().append(result);
                content.dialog(
                    'option',
                    {
                        // this your options
                    }
                );
            };
        });
    };
    
        3
  •  0
  •   dman    13 年前

    这里有一个更简洁的方法对我有用

    $(targetElement).css('max-height', '400px').dialog({
      'resize' : function() {
        $(this).css('max-height', '1000px');
      }
    });
    

    首先在对话框中设置要放置的对象的最大高度。它出现在屏幕上的大小不超过400像素。 ... 正是我想要的,而且 许多的 更干净的代码。