Jquery 如何修复我的自制模式脚本-或者:有其他选择吗?
目前,我们使用的是获取模态iframe和模态yes/no对话框。 我们使用这两个组件的原因如下: 它们都依赖于jQueryUI主题——因此这两种模态元素之间没有任何中断。 使用jQueryUI对话框很容易获得yes/no对话框,并将事件附加到这些按钮上 blockUI实际上更加轻量级 我们现在正在寻找替代方案,因为用于获取模态iFrame的代码有点错误:Jquery 如何修复我的自制模式脚本-或者:有其他选择吗?,jquery,modal-dialog,Jquery,Modal Dialog,目前,我们使用的是获取模态iframe和模态yes/no对话框。 我们使用这两个组件的原因如下: 它们都依赖于jQueryUI主题——因此这两种模态元素之间没有任何中断。 使用jQueryUI对话框很容易获得yes/no对话框,并将事件附加到这些按钮上 blockUI实际上更加轻量级 我们现在正在寻找替代方案,因为用于获取模态iFrame的代码有点错误: var popups = {}; function showPopup(settings) { var target = setti
var popups = {};
function showPopup(settings) {
var target = settings.target;
var $popup = popups[target];
if ($popup) {
$popup.attr('src', 'blankPage.html');
}
else {
$popup = $('<iframe/>');
$popup.appendTo('form');
$popup.css('display', 'none');
$popup.attr('frameborder', 0);
$popup.dialog({
'title': settings.title,
'autoOpen': false,
'modal': true,
'width': settings.width,
'height': settings.height,
'draggable': false,
'resizable': false,
'open': function () {
var $widget = $popup.dialog('widget');
$widget.css('position', 'fixed');
$widget.css('top', '50%');
$widget.css('margin-top', $widget.height() / 2 * -1);
$widget.css('left', '50%');
$widget.css('margin-left', $widget.width() / 2 * -1);
$popup.css('width', settings.width);
$popup.css('padding', '0px');
$popup.attr('src', settings.target);
}
});
popups[target] = $popup;
}
$popup.dialog('open');
}
它工作得很好,但是当点击打开一个对话框,然后关闭,然后重新打开它时,它会显示前一页的一些ms-如果模式内容本身有一些流,这可能会非常棘手
是否有机会修复它,或者有其他适合我们需要的脚本?解决方案非常简单:
var popups = {};
function showPopup(settings) {
var target = settings.target;
var $popup = popups[target];
if (!$popup) {
$popup = $('<iframe/>');
$popup.appendTo('form');
$popup.css('display', 'none');
$popup.attr('frameborder', 0);
$popup.dialog({
'title': settings.title,
'autoOpen': false,
'modal': true,
'width': settings.width,
'height': settings.height,
'draggable': false,
'resizable': false,
'open': function () {
var $widget = $popup.dialog('widget');
$widget.css('position', 'fixed');
$widget.css('top', '50%');
$widget.css('margin-top', $widget.height() / 2 * -1);
$widget.css('left', '50%');
$widget.css('margin-left', $widget.width() / 2 * -1);
$popup.css('width', settings.width);
$popup.css('padding', '0px');
$popup.attr('src', settings.target);
},
'close': function () {
$popup.attr('src', 'blankPage.html');
}
});
popups[target] = $popup;
}
$popup.dialog('open');
}
还是。。。我对任何其他选择都很感兴趣 我使用这个简单的模式 如果您正在寻找快速简便的模式,那么设置起来确实非常容易 试试看。它对我很有效 谢谢