【问题标题】:Jquery -- dialog show() and hide()Jquery -- 对话框 show() 和 hide()
【发布时间】:2013-07-19 21:43:29
【问题描述】:

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

【问题讨论】:

    标签: jquery jquery-ui-dialog


    【解决方案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);

    【讨论】:

      【解决方案2】:

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

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

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

      $(document).ready(function () {
      
          });
      

      这仅限于 onload。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-08
        • 2013-02-25
        • 2010-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多