获取 JQuery UI 弹出窗口的实例
Get instance of JQuery UI popup
我正在创建一个 JQuery UI 弹出窗口:
function ShowJQueryStandardDialog(searchTarget, title, width, height, closeFunction)
{
var $dialog = $('<div id="dialogDIV"><iframe id="dialogIFrame" frameborder="no" scrolling="auto" src="' + searchTarget + '" width="' + (width - 50) + 'px" height="' + (height - 50) + 'px"></iframe></div>');
$dialog.dialog(
{
modal: true,
title: title,
show: 'slide',
width: width,
height: height,
closeOnEscape: true,
close: function (event, ui)
{
if (typeof closeFunction === 'function') closeFunction();
}
});
}
然后我想在代码的其他地方获取弹出窗口的实例,以便关闭它。我试过了:
var $dialog = $('#dialogDIV');
var $dialog = $('.ui-dialog');
var $dialog = $('.ui-dialog-content');
但它returns 是空对象。请注意,如果我将上面的代码放在对话框的 close
方法中,它可以正常工作。我是否可以得出结论,我无法从其初始代码外部访问弹出窗口?
找到方法:
function ShowJQueryStandardDialog(searchTarget, title, width, height, closeFunction)
{
$dialog = $('<div id="dialogDIV"><iframe id="dialogIFrame" frameborder="no" scrolling="auto" src="' + searchTarget + '" width="' + (width - 50) + 'px" height="' + (height - 50) + 'px"></iframe></div>');
$dialog.dialog(
{
modal: true,
title: title,
show: 'slide',
width: width,
height: height,
closeOnEscape: true,
close: function (event, ui)
{
if (typeof closeFunction === 'function') closeFunction();
}
});
/* IMPORTANT BIT */
$(document).bind('close-dialog', function ()
{
$dialog.dialog('close');
});
}
然后在您想要关闭对话框时调用 parent.$(parent.document).trigger('close-dialog');
。
我正在创建一个 JQuery UI 弹出窗口:
function ShowJQueryStandardDialog(searchTarget, title, width, height, closeFunction)
{
var $dialog = $('<div id="dialogDIV"><iframe id="dialogIFrame" frameborder="no" scrolling="auto" src="' + searchTarget + '" width="' + (width - 50) + 'px" height="' + (height - 50) + 'px"></iframe></div>');
$dialog.dialog(
{
modal: true,
title: title,
show: 'slide',
width: width,
height: height,
closeOnEscape: true,
close: function (event, ui)
{
if (typeof closeFunction === 'function') closeFunction();
}
});
}
然后我想在代码的其他地方获取弹出窗口的实例,以便关闭它。我试过了:
var $dialog = $('#dialogDIV');
var $dialog = $('.ui-dialog');
var $dialog = $('.ui-dialog-content');
但它returns 是空对象。请注意,如果我将上面的代码放在对话框的 close
方法中,它可以正常工作。我是否可以得出结论,我无法从其初始代码外部访问弹出窗口?
找到方法:
function ShowJQueryStandardDialog(searchTarget, title, width, height, closeFunction)
{
$dialog = $('<div id="dialogDIV"><iframe id="dialogIFrame" frameborder="no" scrolling="auto" src="' + searchTarget + '" width="' + (width - 50) + 'px" height="' + (height - 50) + 'px"></iframe></div>');
$dialog.dialog(
{
modal: true,
title: title,
show: 'slide',
width: width,
height: height,
closeOnEscape: true,
close: function (event, ui)
{
if (typeof closeFunction === 'function') closeFunction();
}
});
/* IMPORTANT BIT */
$(document).bind('close-dialog', function ()
{
$dialog.dialog('close');
});
}
然后在您想要关闭对话框时调用 parent.$(parent.document).trigger('close-dialog');
。