我很难找到这方面的具体信息和例子。我的应用程序中有许多jQuery UI对话框连接到加载了.ajax()调用的div。它们都使用相同的设置调用:
$(“.mydialog”).dialog({
自动打开:错误,
可调整大小:false,
莫代尔:对
});
我只想让对话框调整到加载内容的宽度。现在,宽度保持在300px(默认值),我得到一个水平滚动条
据我所知,“自动调整大小”不再是对话框的选项,当我指定它时,什么也不会发生
我试图不为每个对话框编写单独的函数,因此.dialog(“option”、“width”、“500”)实际上不是一个选项,因为每个对话框的宽度都不同
为对话框选项指定width:“auto”,只会使对话框占据浏览器窗口宽度的100%
我有什么选择?我将jQuery1.4.1与jQueryUI1.8rc1一起使用。看起来这应该是很容易的事情
编辑:我已经为此实现了一个笨拙的解决方案,但我仍在寻找更好的解决方案
我刚刚使用jQuery1.4.1和UI1.8rc1编写了一个小示例应用程序。我所做的只是将构造函数指定为:
var theDialog=$(“.mydialog”).dialog({
自动打开:错误,
可调整大小:false,
莫代尔:是的,
宽度:'自动'
});
我知道你说过,这使它占据了浏览器窗口的100%宽度,但它在FF3.6、Chrome和IE8中进行了测试,在这里工作得很好
我没有进行AJAX调用,只是手动更改对话框的HTML,但我认为这不会导致任何问题。其他css设置是否可以解决这个问题
唯一的问题是它使宽度偏离中心,但我找到了这张支持票,他们提供了一种解决方法,将对话框('open')语句放置在setTimeout中以解决问题
以下是我的头标签的内容:
<;script type=“text/javascript”src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js“></脚本>;
<;script type=“text/javascript”src=”https://stackoverflow.com/questions/2231446/jquery-ui.min.js“></脚本>;
<;链接href=”https://stackoverflow.com/questions/2231446/jquery-ui.css“rel=“stylesheet”type=“text/css”/>;
<;script type=“text/javascript”>;
$(函数(){
var theDialog=$(“.mydialog”).dialog({
自动打开:错误,
可调整大小:false,
莫代尔:是的,
宽度:“自动”
});
$('#一')。单击(函数(){
html('some random text')。对话框('open');
});
$('#two')。单击(函数(){
dialog.html(“<;ul>;<;li>;苹果<;/li>;<;li>;橙色<;/li>;<;li>;香蕉<;/li>;<;草莓<;/li>;<;li>;查看宽度是否变化<;/li>;<;/ul>;”)对话框(“打开”);
});
$('#三')。单击(函数(){
//这是唯一可以注意到偏离中心的呼叫,因此请使用setTimeout
html('<;img src='https://stackoverflow.com/questions/2231446/random.gif“width=“500px”height=“500px”/>;”);
setTimeout(函数(){theDialog.dialog('open')},100);;
});
});
</脚本>;
我从下载了jQueryUI的js和csshttp://jquery-ui.googlecode.com/files/jquery-ui-1.8rc1.zip.
和机构:
<;div class='mydialog'></部门>;
<;a href='https://stackoverflow.com/questions/2231446/id='one'>;测试1</a>;
<;a href='https://stackoverflow.com/questions/2231446/id='two'>;测试2</a>;
<;a href='https://stackoverflow.com/questions/2231446/id='three'>;测试3</a>;