2014-07-18 122 views
0

工作,我有這樣的jQuery代碼:JQuery的淡出不是AJAX POST請求

$(function(){ 
    $('input#SearchGo').on('click', function(){ 
     var searchid = $('input#search').val(); 
     var dataString = 'search='+ searchid; 
     $.ajax({ 
      type: "POST", 
      url: "tickets.php", 
      data: dataString, 
      cache: false, 
      success: function(html) { 
       $("#result").html(html).show(); 
      } 
     }); 
     return false;  
    }); 
}); 

,做一個生活搜索和數據發佈到PHP頁面。

在每一頁上我有疊加的加載圖像的ID的DIV而頁面加載,那麼這段代碼:

$(window).load(function(){ 
    // PAGE IS FULLY LOADED 
    // FADE OUT YOUR OVERLAYING DIV 
    $('#overlay').fadeOut(); 
}); 

去除覆蓋的div一旦頁面加載。

當我運行搜索查詢,覆蓋div不fadeOut在所有,我試圖在我的函數的成功部分添加$('#overlay').fadeOut();,但它不fadeOut div。

UPDATE:

這裏是裝載/ DIV覆蓋

<div id="overlay" class="overlay"> 
    <img src="images/integra_loading.gif" alt="Loading" width="12%" style="margin-top:15%;" /> 
    <br /><br /> 
    <h1>Loading...</h1> 
</div> 
+0

請提供一些HTML,特別是覆蓋div。 –

+0

檢查更新的問題 – user3815283

+0

您正在使用哪種瀏覽器?檢查JavaScript控制檯是否有任何錯誤。 –

回答

0
$(function(){//this says the dom is ready 
    $('#overlay').fadeOut(); 
}); 

或者

$(document).on("ajaxComplete", function(){ 
    $('#overlay').fadeOut(); 
}); 
0

不要隱藏了調用的函數您ajaxloader的HTML來自通過ajax請求加載的html腳本。只需在請求前顯示加載器並在將html內容替換爲響應之前將其隱藏起來。

function loader(){ 
    this.id = '#overlay' 
}; 

loader.prototype.show = function(){ 
    $(this.id).fadeIn(); 
}; 

loader.prototype.hide = function(){ 
    $(this.id).fadeOut();  
}; 

loaderObj = new loader(); 

$('.list').live('click', function() { 
    loaderObj.show(); 
    $.ajax({ 
     type: "GET", 
     url: "http://echo.jsontest.com/uid/12345/value/nuno_bettencourt", 
     cache: false, 
     dataType: "json", 
     success: function(json) { 
      // setTimeout only to delay the response and let the loader do his thing ;) 
      setTimeout(function(){ 
       loaderObj.hide(); 
       $('#ajaxResult').html("UID=" + json.uid + "\nName=" + json.value);  
      }, 2000); 

     } 
    }); 

我做你的$阿賈克斯後,讓你一個小例子小提琴http://jsfiddle.net/358Fz/1/

0

,添加完成。在這樣做,做淡出!

$.ajax({ 
     ... 
    }).done(function(){ 
     $('#overlay').fadeOut(); 
    }); 

您可以添加.fail的時候失敗了,等看到:http://api.jquery.com/jquery.ajax/

0

只要定義點擊事件之外裝載機變量,然後使用它需要的地方。如果只需遍歷DOM來定位加載程序元素,則開銷會更少。除非需要將事件委派給其他元素,否則您還可以將開啓事件更改爲單擊事件以保存一些按鍵事件。此外,由於ID是唯一的,因此不需要查找$(輸入#搜索)。刪除變量選擇器並只查找ID會更有效率。

$(function() { 
    var $loader = $('#overlay'); 
    $('.list').click(function(){ 
     $loader.fadeIn(); 
     $.ajax({ 
      type: "GET", 
      url: "http://time.jsontest.com/", 
      dataType: 'json', 
      cache: false, 
      success: function(json) { 
       $loader.fadeOut(); 
       $("#axajResponse").html('<b>Current Time:</b> ' + json.time).show(); 
      } 
     }); 
     return false;  
    }); 
}); 

在上面的例子中,我找回當前時間,以便您可以看到每個單擊事件的響應更改。

這裏是一個例子:http://jsfiddle.net/bradlilley/jLG4g/