2

我有一个名为 Default.aspx 的 .aspx 页面。我正在使用 div 显示为对话框,我的 div 部分是:

   <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 和相同的功能。添加和更新的相同对话框弹出窗口,我无法第二次单击它,或者每次单击都插入。

4

2 回答 2

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

于 2013-07-19T13:36:41.263 回答
0

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

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

此语句不适用于显示对话框。

$(document).ready(function () {

    });

这严格用于onload。

于 2013-07-19T13:32:26.503 回答