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

Close a JQueryUI dialog works only one time

本文关键字:一次 工作 JQueryUI 对话框 关闭      更新时间:2023-09-26

我在看这个ansare jQuery如何从对话框中的iframe关闭对话框?。我有同样的情况,即一个页面以这种方式调用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");
                }
            }
        });

功能关闭主页中的选择是:

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

此代码有效。。。但这只是第一次!当我第二次打开iframe id="pickDialog"时,当我按下Si按钮时,对话框不会关闭。函数closePick已经执行,我在Javascript控制台中没有出错。可能是什么?

我已经解决了在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);
}

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