Jquery微调器重叠加载

时间:2015-10-04 16:12:51

标签: javascript jquery ajax html5

我目前正在使用jQuery / Ajax。我想在发出ajax请求时添加一个微调器。我的方案是:UI中有两个选项卡,一个是Home,另一个是Activities。因此,当用户单击“活动”选项卡时,它将向后端发出ajax请求。此时我想在整个页面中添加一个加载微调器叠加层。我目前正在使用jQuery块UI。我似乎无法解决这个问题。我的代码是这样的:

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

1 个答案:

答案 0 :(得分:0)

根据jQuery BlockUI Plugin's documentationmessage参数需要HTML字符串。

因此,您必须将代码的这一部分更改为:

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