2016-05-23 8 views
0

Ich habe Probleme, ein Modal zu schließen, das ich in Javascript erstelle. Die Idee besteht darin, während des Datenabrufs einen Ladekreis zu zeigen und ihn dann im Hintergrund zu verbergen. Alles funktioniert gut, bis ich versuche es zu verstecken. Nichts scheint zu passieren? Es hängt nur dort ...Ein Popup schließen, das über Javascript von Codebehind erstellt wurde

enter image description here

Javascript für Ein-/Ausblenden des Ladekreis:

<style type="text/css"> 

.modal 
{ 
    position: fixed; 
    top: 0; 
    left: 0; 
    background-color: black; 
    z-index: 99; 
    opacity: 0.8; 
    filter: alpha(opacity=80); 
    -moz-opacity: 0.8; 
    min-height: 100%; 
    width: 100%; 
} 
.loading 
{ 
    font-family: Arial; 
    font-size: 10pt; 
    border: 5px solid blue; 
    width: 200px; 
    height: 100px; 
    display: none; 
    position: fixed; 
    background-color: white; 
    z-index: 999; 
} 
</style> 


<script type="text/javascript"> 
    function ShowLoadingCircle() 
    { 
     var modal = $('<div />'); 
     modal.ID = "loadingCircle2"; 
     modal.addClass("modal");   
     $('body').append(modal); 
     var loading = $(".loading"); 
     var top = Math.max($(window).height()/2 - loading[0].offsetHeight/2, 0); 
     var left = Math.max($(window).width()/2 - loading[0].offsetWidth/2, 0); 
     loading.css({ top: top, left: left }); 
     loading.show(); 
    } 

    function HideLoadingCircle() 
    { 
     var loadingCirlce = $find("loadingCircle2"); 
     loadingCirlce.hide(); 
    } 
</script> 

-Code hinter zum Anzeigen/Verbergen:

ScriptManager.RegisterStartupScript(this, this.GetType(), "Show Me", "setTimeout('ShowLoadingCircle()', 10);", true); 

ScriptManager.RegisterStartupScript(this, this.GetType(), "Hide Me", "setTimeout('HideLoadingCircle()', 0);", true); 

Antwort

2

Wie Sie die ID des dynamisch erstellten Elements definiert haben. Verwenden ID Selector (“#id”)

Wählt ein einziges Element mit dem gegebenen id-Attribut

Verwenden

$("#loadingCircle2") 

anstelle von

$find("loadingCircle2") 

Sie haben die ID-Eigenschaft nicht richtig festgelegt, da ihre id und modal ein jQuery-Objekt ist, auch wenn Sie das loading-Element nicht an Modal anhängen.

komplette Script

function ShowLoadingCircle() 
{ 
    //Create DIV 
    var modal = $('<div />', { 
     "id" : "loadingCircle2", 
     "class" : "modal", 
    });   

    //Set loading 
    var loading = $(".loading"); 
    var top = Math.max($(window).height()/2 - loading[0].offsetHeight/2, 0); 
    var left = Math.max($(window).width()/2 - loading[0].offsetWidth/2, 0); 
    loading.css({ top: top, left: left }); 

    //Append the loading 
    modal.append(loading); 

    //Append the modal 
    $('body').append(modal); 
} 

function HideLoadingCircle() 
{ 
    $("#loadingCircle2").hide(); 
} 
+0

Es scheint nicht zu funktionieren? –

Verwandte Themen