2013-05-28 18 views
1

我想获得一个按钮,在一个jQuery UI模式对话框关闭本身并打开另一个模式对话框。jQuery不会打开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

莫非

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

回答

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/

希望它有帮助。

+0

男孩我觉得自己像一个白痴,这就是当你在凌晨5点发布代码到stackoverflow时会发生什么。谢谢你,对不起...... –

+0

发生在我们所有人的某个时刻......如果它没有......那么你的编程不够! – Daniel

0

将.dialog定义移动到点击处理程序中会起到作用。

$("#btnCreateToDo").click(function (e) { 
    $("#DialogCreateToDo").dialog({ 
     model: true, 
     autoOpen: true, 
     width: 450 
    }); 
}); 
+0

试着在小提琴中,似乎没有2为我工作?! http://jsfiddle.net/rz3um/ –