html冻结在Jquery对话框中

时间:2015-05-18 17:24:28

标签: javascript jquery html

我正在开发一个客户端应用程序,我正在使用jquery确认对话框。它要求用户确认,如果用户选择“是”,则应关闭对话框,然后删除表中的项目。但是,我所看到的是(如果用户选择“是”),应用程序正忙于删除表项,并且用对话框确认框冻结UI。有什么方法可以从这段代码得到预期的响应吗? (表示关闭确认对话框,然后继续执行删除操作)。 注意:这不在任何浏览器中;我正在使用IE组件在客户端小部件中加载html。

$('<div title="Confirm" class="cfmDialog" />')
        .html('<span style="float:left; margin:0 7px 20px 0;"></span>' + "Are you sure you want to delete all items in table?")

        // Define the Dialog and its properties.
        .dialog({
            resizable: false,
            modal: true,
            title: "Delete table items",
            height: 150,
            width: 300,
            buttons: {
                "Yes": function () {
                    $(this).dialog('close');
                    deleteTableItems();
                },
                "No": function () {
                    $(this).dialog('close');
                }
            }
        });

1 个答案:

答案 0 :(得分:1)

您可以在超时后运行deleteTableItems()

"Yes": function() {
    $(this).dialog("close");
    setTimeout(deleteTableItems, 1);
},

但是当函数运行时,它仍然会冻结浏览器,它只允许对话框先关闭。最好的解决方案是修复deleteTableItems,使其以异步方式运行。