为什么当我将“closeOnEscape”设置为false然后将“closeOnEscape”设置为true时,jquery对话框转义不起作用?

时间:2010-06-08 20:09:05

标签: jquery jquery-ui

我正在使用jquery ui 1.8,我有一个模型对话框弹出,如果用户点击复选框,则会出现另一个。

这要求他们说“是”或“否”,所以我删除了对话框中的“X”并将closeOnEscape设置为false。

然而我注意到当我这样做时,它下面的模型对话框会在它们逃脱时关闭。所以现在当选中复选框时弹出的那个我在第一个对话框中禁用了closeOnEscape。

当他们关闭它时我再次启用但它不起作用。我不知道为什么

$("#Dialog").dialog( "option", "closeOnEscape", true);

我甚至在萤火虫中这样做。我只是打开我的第一个对话框

在firebugs控制台中执行此操作

$("#Dialog").dialog( "option", "closeOnEscape", false);

然后验证现在是否已禁用转义。然后我尝试再次启用它

$("#Dialog").dialog( "option", "closeOnEscape", true);

然而它从未启用。

修改

好的,我认为它确实有效....事情是用户必须点击对话框的页脚部分(按钮所在的位置)。这当然不理想,因为谁会想到点击那个区域才能让它工作?

1 个答案:

答案 0 :(得分:1)

您可以尝试将焦点设置回第一个对话框中的复选框(或对话框容器中的某个tabbable元素)。

假设您单击复选框时打开的对话框 - 带有是/否的对话框的ID为yesNoDialog。让我们说第一个对话框中的复选框(我猜是#Dialog)的ID为theCheckbox。然后,当您关闭yesNoDialog时,您将重新聚焦回theCheckbox。喜欢这个

$("#yesNoDialog").dialog({
    close: function() {
        $("#theCheckbox").focus();
    }
});

这是demo