关闭一个JQueryUI对话框只能工作一次

时间:2014-08-25 09:38:32

标签: javascript jquery jquery-ui iframe

我正在看这个回答jQuery how to close dialog from iframe within dialog?。 我有相同的情况,即以这种方式调用jqueryui对话框的页面:

var message = '<div id="pickDialog"><iframe frameborder="0" src="/Anagrafica/Pick?where=TipoAnagrafica=\'P\'"></iframe></div>'

    $(message).dialog({
        modal: true,
        width: 'auto',
        title: 'Seleziona'
    });

在Anagrafica页面中,当用户按下按钮时,我运行另一个jqueryui对话框,如下所示

var message = '<div>Hai selezionato ' + value + '.</div><div>Confermi?</div>'

        $('<div></div>').html(message).dialog({
            modal: true,
            title: 'Conferma',
            buttons: {
                "Si": function () {
                    window.parent.setCodice(value);
                    $(this).dialog("close");
                    window.parent.closePick();
                },
                "No": function () {
                    $(this).dialog("close");
                }
            }
        });

主页面中的函数closePick是:

function closePick() {
    $('#pickDialog').dialog('close');
    return false;
}

此代码有效......但仅限第一次!当我打开iframe id =&#34; pickDialog&#34;第二次,当我按下Si按钮时,对话框不会关闭。 函数closePick被执行,我在Javascript控制台中没有错误。 会是什么呢?

1 个答案:

答案 0 :(得分:0)

我已经在html页面中解决了这个问题

<div id="pickDialog" style="display:none"></div>

然后jquery函数变为

function pickDialog() {
var message = "<iframe width="100%" height="100%" frameborder="0" src="/Anagrafica/Pick?where=TipoAnagrafica=\'P\'"></iframe>"    

    $("#pickDialog").dialog({
        modal: true,
        width: dWidth,
        height: dHeight,
        title: 'Seleziona'
    }).html(message);
}

其他代码不变。我不知道为什么,但这解决了这个问题。