如何使用jQuery检测"任何"ajax请求?

Bri*_*ott 14 ajax jquery load detect

我有一个页面,我可以插入一些javascript/jquery来操作输出.我对页面标记等没有任何其他控制权.

我需要在页面上的每个元素之后通过jquery添加一个额外的元素.问题是元素是通过现有页面上的异步调用生成的,该调用发生在$(document).ready完成之后.

本质上,我需要一种方法在页面加载后调用我的jquery并完成后续的ajax调用.有没有办法检测页面上任何ajax调用的完成情况,然后调用我自己的自定义函数在新创建的s之后插入其他元素?

Nic*_*ver 47

不幸的是,这不适用,因为看起来OP似乎没有使用 或任何jQuery ajax方法实际加载内容,但留在这里以防万一googler's正在这样做.$.ajax()


你可以在这里使用满足你需求的任何全局ajax事件,你可能在之后 $.ajaxComplete()或者$.ajaxSuccess().

例如:

$(document).ajaxSuccess(function() {
  alert("An individual AJAX call has completed successfully");
});
//or...
$(document).ajaxComplete(function() {
  alert("ALL current AJAX calls have completed");
});
Run Code Online (Sandbox Code Playgroud)

如果你想运行一些通用函数,那么将它们附加到文档(它们只是下面的事件).如果你想特别展示一些东西,例如模态或消息,你可以使用它们更整洁(虽然这似乎不是你所追求的),像这样:

$("#myModal").ajaxComplete(function() {
  $(this).fadeIn().delay(1000).fadeOut();
});
Run Code Online (Sandbox Code Playgroud)