2013-07-19 199 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。