Jquery - 对话框show()和hide()

时间:2013-07-19 11:01:11

标签: jquery jquery-ui-dialog

我有一个名为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会弹出相同的对话框,我无法再次点击它,或者每次点击都会插入。

2 个答案:

答案 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。