2013-05-28 23 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/ –