我有一个名为Default.aspx的.aspx页面。我使用div显示为对话框,我的div部分是:
<div id="dialog" class="dialogADD" title="Dialog" style="display:none">
...
</div>
这是我的Jquery Call,我用它来显示和隐藏对话框。
$(document).ready(function () {
function ContextMenuAction(){
var key = "Add";
if (key == "Add") {
$(".dialogADD").dialog({
height: 238,
width: 465,
resizable: false,
title: "Add Ports"
});
AddPortContext($Port); // Here does the functionality of Adding from dialog
}// End of ContextMenu
function AddPortContext($Port) {
$(".dialogADD").show();
$(".imgbtnUpdate").click(function () {
... // Does some work here
success: function (JSONData) {
try {
$(".dialogADD").dialog('close');
}
}); // Close of click
}); // Close of Load function
这是我打开和关闭对话框的方式: 当我第一次点击它时,它可以工作。第二次,如果我不调用show(),它就不起作用。如果我在上面的示例中使用show(),则会再次插入,然后三次单击。
任何人都可以帮助我。
此外,我对ADD和Update使用相同的div和相同的功能。 ADD和Update会弹出相同的对话框,我无法再次点击它,或者每次点击都会插入。
答案 0 :(得分:1)
如果你认为你将关闭并打开很多对话框,你可以创建一个切换功能:
var isShown = false;
function toggleDialog(){
if(!isShown){
$("#dialog").show();
isShown = true;
} else {
$("#dialog").hide();
isShown = false;
}
}
如果你想获得幻想,你可以传入一个参数来设置对话框中的信息。
function toggleDialog(string message){...
...
$('#dialog).html(message);
...
}
更好的是,如果传入消息,则显示对话框,否则隐藏它:
function toggleDialog(message){
if(message != null){
$('#dialog).html(message);
$("#dialog").show();
} else {
$('#dialog).html("");
$("#dialog").hide();
}
}
然后,打开toggleDialog("Cool message");
并关闭toggleDialog(null);
答案 1 :(得分:0)
删除onload(document.ready)中的函数定义。
$(".dialogADD").show();
此声明不适用于对话框。
$(document).ready(function () {
});
严格来说,这是onload。