我正在使用LightFace,它工作正常。我从服务器端获取数据并将数据分配到LightFace对话框,但问题是对话框的高度和宽度不会根据内容大小变大。所以请指导我在代码中需要纠正的内容。我给了我的一小部分代码。我需要对话框应该增长&根据内容大小缩小。请用小代码指导我。感谢
var modal = "";
var sHtml = "";
jQuery.noConflict();
jQuery(document).ready(function () {
jQuery("#btnFeedback1").click(function () {
var modal = new LightFace({
draggable: true,
height: 200,
width: 300,
title: 'My Profile',
content: '<div class="BusyStyles"><div>',
buttons: [
{ title: 'OK', event: function () {
if (Validate()) {
if (Save()) {
this.close();
}
}
}
},
{ title: 'Close', event: function () { this.close(); } }
]
}).open();
jQuery.ajax({
type: "POST",
url: "Dialog_LightFace.aspx/GetHtml",
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
sHtml = data.d;
modal.load(jQuery(sHtml).find('#frm').html())
//modal.load('<div css="BusyStyles"><img src="images/fbloader.gif" border="0" /><div>');
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
return false;
});
});
答案 0 :(得分:0)
如果可以,请尝试使用一些示例代码制作JSFiddle。我们更容易调试。
我认为问题是您在加载任何内容之前已经打开了对话框。因此,在确定内容之前,对话框将在宽度和高度上设置。
试试这个:
把它放在jQuery.ajax.success:
中success: function (data) {
sHtml = data.d;
modal.load(jQuery(sHtml).find('#frm').html()).open();
}
如果这没有帮助,请尝试将width
和height
设置为'auto'
,看看会发生什么。
修改强>
以编程方式设置宽度和高度:
jQuery.ajax({
type: "POST",
url: "Dialog_LightFace.aspx/GetHtml",
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var sHtml = data.d;
// Get the element and dimensions
var element = jQuery(sHtml).find('#frm');
var width = element.width();
var height = element.height();
var modal = new LightFace({
// all other options plus:
width: width,
height: height
});
modal.load(element.html()).open();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
这段代码可能需要稍微调整一下,因为我直接写这篇文章,但这说明了它应该如何工作。