0

我有这段代码

$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);

它按我的预期工作,除非它只工作一次。刷新页面后,上面的代码运行良好,但就像以前一样只运行一次。任何建议如何解决它?

4

1 回答 1

1

请阅读.ajaxStart 文档

说明:

描述:注册一个处理程序,以便在第一个 Ajax 请求开始时调用。这是一个 Ajax 事件。

每当要发送 Ajax 请求时,jQuery 都会检查是否还有其他未完成的 Ajax 请求。如果没有进行中,jQuery 会触发 ajaxStart 事件。此时会执行已使用 .ajaxStart() 方法注册的所有处理程序。

这意味着如果第一个 ajax 请求没有终止并且您发送另一个请求,则不会再次触发此事件。

然后,我们可以很容易地假设 ajaxStop 的行为是相同的。 是文档

描述:注册一个处理程序以在所有 Ajax 请求完成时调用。这是一个 Ajax 事件。

每当一个 Ajax 请求完成时,jQuery 都会检查是否还有其他未完成的 Ajax 请求。如果没有剩余,jQuery 会触发 ajaxStop 事件。此时会执行已使用 .ajaxStop() 方法注册的所有处理程序。如果通过在 beforeSend 回调函数中返回 false 来取消最后一个未完成的 Ajax 请求,也会触发 ajaxStop 事件。

这意味着正如预期的那样,只有当所有当前正在运行的 ajax 请求都被终止时,才会触发此事件。

或者也许我不明白你的问题?

编辑

您也可以尝试使用 ajaxComplete(没有足够的代表来插入链接)

(全局事件)此事件的行为与完成事件相同,每次 Ajax 请求完成时都会触发。

无论 ajax 调用成功还是失败,都会触发此事件。但它也会为每个完成的请求调用。

于 2013-03-23T14:18:21.497 回答