1

jQuery UIモーダルダイアログ内のボタンを取得して、それ自体を閉じて別のモーダルダイアログを開こうとしています。

問題は、開いたときに 2 番目のダイアログが常にモーダル ダイアログから期待される画面オーバーレイなしで開くことです。その結果、モーダルの背後の画面をクリックすることができます。

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

コードにタイプミスがあります。2 番目のダイアログ定義には、「 modal : true」であるはずの「 model : true 」があります。

$(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 に答える