/ / Get instance of JQuery UI popup - jquery-ui, diálogo, instância

Obter instância do JQuery UI popup - jquery-ui, diálogo, instância

Estou criando um popup da UI do JQuery desta forma:

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();
}
});
}

Eu então quero pegar a instância do popup em outro lugar no código para que eu possa fechá-lo. Eu tentei:

var $dialog = $("#dialogDIV");
var $dialog = $(".ui-dialog");
var $dialog = $(".ui-dialog-content");

Mas retorna objeto vazio. Note que se eu colocar o código acima no close método do diálogo, funciona bem. Devo concluir que não consigo acessar o popup de fora do seu código de inicialização?

Respostas:

0 para resposta № 1

Encontrou uma maneira:

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");
});
}

Em seguida, ligue parent.$(parent.document).trigger("close-dialog"); quando você quiser fechar sua caixa de diálogo.