2014-01-27 110 views
0

我想阻止用戶界面和解除阻止ajax調用的UI開始和停止。有人可以指導我如何實現這一點。屏蔽與jquery和css的屏幕

This is what i tried so far

jQuery代碼

var $loading = $('#Processing').hide(); 
    $(document) 
     .ajaxStart(function() { 
      var $body = $('body'); 
      this.$mask = $('<div class="DialogMask"></div>'); 
      $body.append(this.$mask); 
      $loading.show(); 

     }) 
     .ajaxStop(function() { 
      var $body = $('body'); 
      this.$mask = $('<div class="DialogMask"></div>'); 
      $body.remove(this.$mask); 
      $loading.hide(); 
     }); 

CSS代碼

div.DialogMask 
{ 
    padding: 10px; 
    position: fixed; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    z-index: 50; 
    background-color: #606060; 
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); 
    -moz-opacity: .5; 
    opacity: .5; 
} 

回答

1

我寧願做這樣的說法:

<body> 
     Welcome 
     <div class="DialogMask"></div> 
    </body> 

而且爲Javascript:

var $loading = $('#Processing'); 
    $loading.hide(); 
    $(document) 
    .ajaxStart(function() { 
     $('.DialogMask').show(); 
     $loading.show(); 
    }) 
    .ajaxStop(function() { 
     $('.DialogMask').hide(); 
     $loading.hide(); 
    }); 
2

以下行

this.$mask = $('<div class="DialogMask"></div>'); 
$body.remove(this.$mask); 

什麼都不做。您正在創建一個新的 div與類DialogMask,然後將其從身體中刪除,由於您從未將該特定的div添加到身體,該身體什麼都不做。

你想要做的是選擇現有的DialogMask並將其刪除。

$body.remove('.DialogMask'); 

我不知道爲什麼你使用this.$mask變量,它不爲你做任何事情。