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

これは、ダイアログを開いたり閉じたりする方法です。最初にクリックすると、機能します。2 回目は、show() を呼び出さないと機能しません。上記の例のように show() を使用すると、再度挿入され、3 回目のクリックで 3 回挿入されます。

誰でも私を助けてください。

さらに、ADD と Update の両方に同じ div と同じ機能を使用しています。ADD と Update で同じダイアログがポップアップし、2 回目はクリックできないか、クリックするたびに挿入されます。

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 () {

    });

これはオンロード専用です。

于 2013-07-19T13:32:26.503 に答える