Ответ 1
Это все, что я сделал для автоматического создания диалогового окна.
$("#edit_dependent").dialog({
autoOpen:false,
modal:true,
width:800,
position:["center",20],
minHeight:"auto"
});
Заглянув в Сделайте JQuery UI Dialog автоматически растущим или сжатым, чтобы соответствовать его содержимому, я использую параметр height: "auto"
при создании модального диалогового окна jQuery:
$( "#dialog-message" ).dialog({
autoOpen: false,
width: "400",
height: "auto",
show: "slide",
modal: true,
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
}
});
Однако высота не растет, чтобы соответствовать всему содержимому. Я все еще вижу вертикальную полосу прокрутки, как на этом изображении:
Есть ли правильный путь в коде определения, который я перечисл, чтобы убедиться, что высота растет настолько, что вертикальная полоса прокрутки не отображается? Или мне нужно сделать это программно, прежде чем открывать диалоговое окно?
Изменить 1
Не уверен, почему, но Chrome показывает это прекрасно, но IE 8 - нет. Мне нужно, чтобы он специально работал в IE 8, поэтому я полагаю, что просто поставлю нижний край текста.
Это все, что я сделал для автоматического создания диалогового окна.
$("#edit_dependent").dialog({
autoOpen:false,
modal:true,
width:800,
position:["center",20],
minHeight:"auto"
});
Это очень странно... Я не уверен, насколько это полезно, но мне удалось получить автоматическую высоту для работы со следующим кодом:
<html>
<head>
<link href="jqueryUI/css/ui-lightness/jquery-ui-1.8.19.custom.css"
rel="stylesheet" type="text/css">
<script src="jquery-1.7.1.js"></script>
<script src="jqueryUI/js/jquery-ui-1.8.19.custom.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#dialog").dialog({
autoOpen: false,
width: "400",
height: "auto",
show: "slide",
modal: true,
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
}
});
$("#dialog").dialog('open');
});
</script>
</head>
<body>
<div id="dialog">
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />
</div>
</body>
</html>
В основном используется та же структура, которую вы уже установили.
Это 4 года Поздно, но у меня такая же проблема.
Написал код, который исправил его
Поместите в свой диалог уникальный класс:
dialogClass:"someClassName"
$(".someClassName").resize(function () {
var totalHeight = 0;
var children = $(".someClassName").children(); //get all divs inside the dialog
for (var i = 0; i < children.length; i++) {
if ($(children[i]).innerWidth() > 15) {
var childrenHeight = children[i].scrollHeight;
totalHeight += childrenHeight;//make sure your dialog will be the correct height
}
}
$("#idOfContentWithWrongHeight").innerHeight($("#idOfContentWithWrongHeight")[0].scrollHeight);//put the content at the height it should appear
$(".someClassName").height(totalHeight);//update the height of the dialog
});
Вот пример demo
$( "#dialog-message" ).dialog({
modal: true,
height: "auto",
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
}
});
setTimeout(function() {
$('#inside').append("Hello!<br>");
setTimeout(arguments.callee, 1000);
},1000);