我有一个jQuery对话框,我正在使用Ajax加载内容.
Dialog最初位于页面的中心.这里的问题是,由于它是动态内容,因此数据的大小是未知的.因此,当我获得大数据时,对话框仅在底部增长,即对话框在底部展开,顶部仍处于相同位置.
我想要的是
解决方法
当我在寻找解决方案时,我在互联网上找到的答案都没有让我满意.即便是这个也没有.在阅读了有关JQuery API文档的更多信息之后,I found something really interesting.正如此网页所描述的那样,您可以绑定一个事件,在该事件中,在ajax请求完成其工作之后将执行该事件.事情是,这并不简单;当我在进行自己的测试时,使用API文档中提供的示例,我无法使其工作.看起来我的JQuery对话框并不存在于“未来”的上下文中.
这导致我this page的描述是:
为现在和将来与当前选择器匹配的所有元素附加事件处理程序.找到这个导致我创建一个像这样的函数:
$(document).live("ajaxStop",function (e) { $(".myDiagDiv").dialog("option","position","center"); });
瞧!它就像一个魅力!完成ajax请求后,position属性将被更改并适应div的内容及其维度!
希望它能在未来帮助人们!
编辑:您可能希望使用函数“.on()”而不是“.live()”.从我写回答的那一刻起,似乎函数“.live()”已经在jQuery的1.9版本中被删除,并被新的替换.对于jQuery> = 1.9的用户来说,更合适的解决方案是这样的:
$(document).on("ajaxStop","center"); });