2013-07-19 158 views
2

我有一个名为Default.aspx的.aspx页面。我用一个div来显示为对话框,我的DIV部分是:jquery - 对话框显示()和隐藏()

<div id="dialog" class="dialogADD" title="Dialog" style="display:none"> 
    ... 
    </div> 

这里是我的jQuery的电话,我用它来显示和隐藏对话框。

 $(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相同的对话框弹出,其中iam无法第二次点击它,或者每次点击都插入。

回答

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);

0

在onload(document.ready)中删除您的函数定义

$(".dialogADD").show();

本声明不会为diplaying对话工作。

$(document).ready(function() { 

    }); 

这是严格的onload。