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 № 1Encontrou 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.