错误:初始化前无法在对话框上调用方法;尝试在对话框中调用方法 'destroy'



当试图在我的系统上显示一个窗口时,出现以下错误,问题是更新jquery的版本。

但在评论"销毁"一行时,模式窗口显示在主菜单下方

 * USER DATA VIEW MENU log  *
 ********************************************************/
$("#verDatos").click(function() {
    $.post("../controlador/Acceso/controlUsuario.php?opc=2", function(data)
    {
        if (data.error == 0)
        {
            $.post(data.vista, function(datos)
            {
                $("#infoMsj").dialog("destroy");
                $("#infoMsj").dialog({
                    title: data.title,
                    resizable: false,
                    bgiframe: true,
                    autoOpen: true,
                    modal: true,
                    width: 'auto',
                    dialogClass: "hide-close",
                    buttons:
                            {
                                "Aceptar": function() {
                                    $(this).dialog('close');
                                }
                            }
                }).html(datos);
            });
        }
    }, "json");
});

您可以通过检查数据来检查jQuery小部件是否初始化:

jQuery UI 1.9及以上版本:

if ($("#infoMsj").data("ui-dialog")) {
    $("#infoMsj").dialog("destroy");
}

1.9版前:

if ($("#infoMsj").data("dialog")) {
    $("#infoMsj").dialog("destroy");
}

您看到该错误的原因是infoMsj上还没有初始化对话框小部件,并且您正试图调用它上的对话框函数destroy

最新更新