你可以去幾條路線。由於您對對話內容的需求非常特定(textarea控制 - 第一個對話框彈出第二個對話框 - 等),我會在頁面上硬編碼所需的div。因此,製作一個「#textAreaDialog」div,並在其中放置所需的控件並將其樣式設置爲display:none。接下來,修改你的函數來接受參數(應該彈出的div的名稱,單擊「OK」時執行的函數)以及單擊「Cancel」時執行的函數),因此,不僅限於爲所有模式使用#dialog,而且您可以精確地控制每個按鈕被點擊後會發生什麼(並非總是關閉對話框,然後爲所需按鈕的點擊事件設置事件處理程序,然後打電話給您對話框因此
HTML:
<input type="button" id="btnPopFirstModal" Value="Open First Modal"/>
<div id="divFirstModal" style="display:none;">
Here is the content for the first modal
</div>
<div id="divSecondModal" style="display:none;">
Here is the content for the second modal
</div>
的Javascript功能:
function PopDialog(divToPop, OkFunction, CancelFunction)
{
$("#" + divToPop).dialog({
autoOpen: false,
resizable: true,
width:"750",
height:300,
modal: true,
buttons: {
"Ok": function() {
OkFunction();
$(this).dialog("close");
},
"Cancel": function(){
CancelFunction();
$(this).dialog("close");
}
}
});
});
}
function PopSecondModal(){
PopDialog("divSecondModal", function(){ put code for OK Click here}, function(){put code for Cancel Click here});
}
的Javascript事件處理程序:
$("#btnPopFirstModal").click(function(e){
e.preventDefault();
PopDialog("divFirstModal", PopSecondModal, function(){}); //empty function for cancel, but you can add your own code as needed
return false;
});
記住,你可以擴大,因爲你想這是很多,增加更多的事件處理程序和自定義的div使用了更合適的情態動詞。另外,正如你所看到的,你可以在調用PopDialog函數時內聯編寫你的OK和Cancel函數 - 或者你可以傳遞一個函數名(如果你想重用這個函數,這是最好的)。