2015-10-04 285 views
0

我目前正在使用jQuery/Ajax。我想在添加ajax請求時添加一個微調器。我的方案是:UI中有兩個選項卡,一個是Home,另一個是活動。所以,當用戶點擊活動標籤時,它會向後端發出一個Ajax請求。在這一點上,我想添加一個加載微調覆蓋到整個頁面。我目前正在使用jQuery塊UI。我似乎沒有與此工作。我有這樣的代碼:Jquery微調覆蓋加載

beforeSend: function (xhr) { 
    $.blockUI({message: $("#spinner")}); 
    //show the loading spinner. 
}, 
success: function (data) { 
    //get the data. 
}, 
error: function (error) { 
    //get the error response. 
}, 
complete: function (jqXHR, textStatus) { 
    $.unblockUI(); 
    //hide the loading spinner 
} 

我有微調元素是這樣的:

<div id="spinner" style="background:url('assets/img/spinner.gif')"></div> 

有我丟失的東西在這裏....

更新:(解決) 原因是由於ajax同步性質。它會鎖定瀏覽器,直到收到響應。所以,我通過調用改變爲異步。你可能想在這裏尋找更多的討論。 view

+0

在更新的一句不正確:AJAX是不是天生同步的(它的全稱是「異步JavaScript和XML」)。你可以做一個同步調用(強烈勸阻順便說一句),但這並不意味着AJAX是同步的。 –

+0

@阿爾瓦羅,我明白你在說什麼。我正在使用ajax的同步請求。這使得微調不可能加載。 –

回答

0

根據jQuery BlockUI Plugin's documentationmessage參數需要一個HTML字符串。

所以,你必須改變你的代碼的該部分:

$.blockUI({ message: $("#spinner").html() }); 
+0

感謝您的及時迴應,但它似乎並沒有這樣工作。 –

+0

@RossiRobinsion既然你已經解決了問題,你可以回答自己的問題,並將其標記爲48小時後接受的問題。 – Buzinas