关于SimpleModal jQuery插件的问题 - 初次打开后可能重新居中?

时间:2010-03-19 20:14:52

标签: jquery simplemodal

我的问题与the SimpleModal jQuery plugin有关。我打开模态窗口没有问题,但一旦打开它就会停留在屏幕上[居中]的位置,但是它的内容正在变化,使其更高,因此不再居中。是否有一种简单的方法可以重新调整它以使它再次居中?

编辑:我认为通过展示两个屏幕截图来解释我的问题会有所帮助:before& after - 基本上我使用的是jQuery的slideUp& slideDown隐藏信用卡表单的功能取决于用户是通过现金/支票还是信用卡付款。显然,在信用卡领域,容器的高度会增加。

我尝试在slideUp / slideDown的回调元素中添加$("div#modal-element").setPosition(),但无济于事 - 实际上setPosition()抛出了JS错误,因为显然该函数不存在。我总是尝试添加autoResize选项并将其设置为true。

2 个答案:

答案 0 :(得分:3)

由于SimpleModal用于处理窗口调整大小的重新定位,因此最简单的方法是触发该事件。内容更改后,请调用:

$(window).resize();

答案 1 :(得分:2)

如果您处于其中一个回调中,则可以访问所有函数和属性 - 因此您可以调用setPosition()来重新定位对话框。例如:

$(element).modal({
    onShow: function (dialog) {
        var modal = this;

        // do stuff and change the container dimensions

        modal.setPosition(); // re-center the container
    }
});

我没有测试过代码,但它应该可以运行。

HTH