1

我正在尝试在 jQuery UI 模式对话框中获取一个按钮来关闭自身并打开另一个模式对话框。

问题是第二个对话框在打开时将始终打开,而没有您期望从模态对话框中获得的屏幕覆盖,因此您仍然可以单击模态对话框后面的屏幕。

jQuery如下

$(function () {

    $("#DialogSelectEventType").dialog({
        modal: true,
        autoOpen: true,
        width: 400
    });

    $("#DialogCreateToDo").dialog({
        model: true,
        autoOpen: false,
        width: 450
    });

    $("#btnCreateToDo").click(function (e) {
        $("#DialogSelectEventType").dialog({ close: function (e, ui) {
            $("#DialogCreateToDo").dialog("open");
        }}).dialog("close");
    });


});

我也尝试将处理程序更改为

$("#btnCreateToDo").click(function (e) {
    $("#DialogSelectEventType").dialog("close");
    $("#DialogCreateToDo").dialog("open");
});

这没有帮助

这是jsFiddle

有人可以帮我理解为什么会发生这种情况吗?这是一个错误还是我做错了什么?

4

2 回答 2

1

您的代码中有一个错字,在第二个对话框定义中,您有“模型:真”,而它应该是“模态:真

$(function () {

    $("#DialogSelectEventType").dialog({
        modal: true,
        autoOpen: true,
        width: 400
    });

    $("#DialogCreateToDo").dialog({
        modal: true,
        autoOpen: false,
        width: 450
    });

    $("#btnCreateToDo").click(function (e) {
        $("#DialogSelectEventType").dialog({ close: function (e, ui) {
            $("#DialogCreateToDo").dialog("open");
        }}).dialog("close");
    });


});

试试这个:http: //jsfiddle.net/tzKf7/3/

希望能帮助到你。

于 2013-05-28T23:53:59.037 回答
0

将 .dialog 定义移动到点击处理程序中就可以了。

$("#btnCreateToDo").click(function (e) { 
    $("#DialogCreateToDo").dialog({
        model: true,
        autoOpen: true,
        width: 450
    });
});
于 2013-05-28T22:42:40.780 回答