2012-07-23 78 views
2

我不知道是否有人能幫助我請。下面jQueryFade輸出打開頁面重載

腳本的提取物使用戶從表中,連接到MySQL數據庫中刪除記錄。

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('form.delete').submit(function(e){ 

      e.preventDefault(); 
      var elem = $(this).closest('.delete'); 
      var lid = $(this).serialize(); 
      $.confirm({ 
       'title' : 'Delete Confirmation', 
      'message' : 'If you delete this Location, all associated Find records will also be deleted. <br /><br />They cannot be restored at a later time! Do you wish to continue?', 
       'buttons' : { 
        'Yes' : { 
       'class' : 'blue', 
       'action': function(){ 
       //elem.slideUp(); 
           $.ajax({ 
          url: 'deletelocation.php', 
          type: 'POST', 
          data: lid, 
          success: function(response) { 
          console.log('success', response); 
            setTimeout(function() { 
            $('body').fadeOut(400, function(){ 
            location.reload(); 
            setTimeout(function(){ 
            $('body').fadeIn(400); 
            }, 500); 
            window.scrollTo(x-coord, y-coord); 
           }); 
          }, 2000); 
          }, 
          error: function() { 
          console.log('error') 
          } 
          }); 
        } 
       }, 
       'No' : { 
        'class' : 'gray', 
             'action': function(){} // Nothing to do in this case. You can as well omit the action property. 

       } 
      } 
     }); 

    }); 

    }) 
</script> 

我能設法得到「刪除確認」消息,工作和記錄的實際刪除,但我有在添加一個「淡出」的缺失發生,然後一點點困難在頁面重新加載時「淡入」。

我讀了一些職位,並從這些我來到了我已經融入了上面的情況如下:

setTimeout(function() { 
$('body').fadeOut(400, function(){ 
location.reload(); 
setTimeout(function(){ 
$('body').fadeIn(400); 
}, 500); 
window.scrollTo(x-coord, y-coord); 
}); 
}, 2000); 

然而,這並不工作,我不知道爲什麼。我只是想知道哪裏有人可以看看這個請讓我知道我要去哪裏錯了。

許多的感謝和親切的問候

+0

而不是淡出整個頁面,你可以刪除和淡出DOM的記錄?這也爲用戶節省了一次完整的刷新。 – Chris 2012-07-23 14:21:41

回答

1

首先非常感謝您的幫助。然而,我卻意識到我的問題在哪裏。我在頁面的body部分之後使用了JavaScript。現在我已經將這個移動到了表單之前的腳本的開頭,並且它工作正常。親切的問候

1

腳本location.reload後()不執行,因爲頁面重新加載。

您可以在您的網址(#reload)中添加一個標誌,並且在頁面加載開始時,如果您找到該標誌,您可以執行 $('body')。hide()。fadeIn()。

1

您不能在location.reload()後面設置javascript操作。

location.reload()將重新加載頁面,並且頁面重新加載時遺留在JS堆棧中的任何內容都將丟失。

您需要將fadeIn作爲函數添加到頁面本身,可能是否存在特定的url參數?因此,而不是重新加載頁面,您將導航到相同的頁面,再加上指定的查詢字符串,例如?reload = true或特定的錨點,例如#myAnchor