你可以去几条路线。由于您对对话内容的需求非常特定(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函数 - 或者你可以传递一个函数名(如果你想重用这个函数,这是最好的)。