LightFace模态插件和宽度&高度问题

时间:2011-08-18 14:26:55

标签: jquery asp.net mootools

我正在使用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;
        });
    });

1 个答案:

答案 0 :(得分:0)

如果可以,请尝试使用一些示例代码制作JSFiddle。我们更容易调试。

我认为问题是您在加载任何内容之前已经打开了对话框。因此,在确定内容之前,对话框将在宽度和高度上设置。

试试这个:

  • 删除.open();在制作var模态实例之后
  • 把它放在jQuery.ajax.success:

    success: function (data) {
      sHtml = data.d;
      modal.load(jQuery(sHtml).find('#frm').html()).open();
    }
    

如果这没有帮助,请尝试将widthheight设置为'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);
   }
});

这段代码可能需要稍微调整一下,因为我直接写这篇文章,但这说明了它应该如何工作。