【发布时间】:2014-08-22 18:26:45
【问题描述】:
我有一个按钮,当用户单击时,它会弹出一个带有 iframe 的对话框,该 iframe 会加载详细信息页面(见下文)。我可以在右上角的 X 按钮上关闭此弹出窗口,但我也喜欢在用户单击弹出框外部时关闭此弹出窗口。
我看到 jQuery 代码可以在用户单击外部时关闭 DIV,但 DIV 在正文页面中必须是静态的。我下面的 OpenIframe 函数代码是通过用户点击动态创建 DIV,所以我不知道如何在用户点击外部时关闭它。
我的 jQuery 代码用 iFrame 打开对话框。
function OpenIframe(url, recordId, width, height, event, pagetitle) {
if (event.preventDefault)
event.preventDefault();
else
event.returnValue = false;
var page = url + "?" + recordId + "=" + encodeURIComponent($('span[id$="' + recordId + '"]').text());
//alert(page);
//var pagetitle = $(this).attr("title");
var $dialog = $('<div id="dialog" style="text-align:center;"></div>')
.html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%" frameBorder="0" align="center"> </iframe>')
.dialog({
autoOpen: false,
modal: true,
height: height,
width: width,
title: pagetitle
});
$dialog.dialog('open');
}
我看到人们使用下面的代码在用户点击外部时关闭弹出窗口,但它仅在 DIV 静态放置在页面正文中时才有效。
jQuery(document).ready(function() {
jQuery("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 100,
modal: true,
open: function(){
jQuery('.ui-widget-overlay').bind('click',function(){
jQuery('#dialog').dialog('close');
})
}
});
});
如果可能,请帮我修改代码以使其正常工作?
谢谢!
【问题讨论】:
-
你可以创建一个jsFiddle吗?
-
这里是 jsFiddle(第一次创建它,如果我做错了请告诉我)。 jsfiddle.net/pwywhztu/7
标签: jquery