我怎样才能检测到“任何”?使用 jQuery 完成 ajax 请求?
我有一个页面,可以在其中插入一些 javascript / jquery 来操作输出。我对页面标记等没有任何其他控制。
我需要在页面上的每个元素之后通过 jquery 添加一个额外的元素。问题是元素是通过 $(document).ready 完成后发生的现有页面上的异步调用生成的。
本质上,我需要一种在页面加载并且后续 ajax 调用完成后调用 jquery 的方法。有没有办法检测页面上任何 ajax 调用的完成情况,然后调用我自己的自定义函数在新创建的 s 之后插入附加元素?
I have a page where I can insert some javascript / jquery to manipulate the output. I don't have any other control over the page markup etc.
I need to add an extra element via jquery after each present on the page. The issue is that the elements are generated via an asynchronous call on the existing page which occurs after $(document).ready is complete.
Essentially, I need a way of calling my jquery after the page has loaded and the subsequent ajax calls have completed. Is there a way to detect the completion of any ajax call on the page and then call my own custom function to insert the additional elements after the newly created s ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
不幸的是,这并不适用,因为OP似乎没有使用
$.ajax()
或任何用于实际加载内容的 jQuery ajax 方法,但将其保留在此处,以防将来的 googler 这样做。您可以使用 任何满足您需求的全局ajax事件,您可能是在
$.ajaxComplete()
或$.ajaxSuccess()
。例如:
如果您只想运行一些通用函数,则将它们附加到文档(它们只是下面的事件)。如果您想显示特定的内容,例如模式或消息,您可以使用它们更简洁一些(尽管这似乎不是您想要的),如下所示:
Unfortunately this doesn't apply since it seems the OP isn't using
$.ajax()
or any jQuery ajax method for actually loading content, but leaving it here in case future googler's are doing this.You can use any of the global ajax events that meet your needs here, you're probably after
$.ajaxComplete()
or$.ajaxSuccess()
.For example:
If you want to run just some generic function then attach them to document (they're just events underneath). If you want to show something in particular, for example a modal or message, you can use them a bit neater (though this doesn't seem to be what you're after), like this:
此示例仅使用 jQuery 在 ajax 调用开始和结束时显示和隐藏元素:
#contentLoading
是一个 gif 图像进度指示器。This example just shows and hides elements at the start and end of ajax calls using jQuery:
#contentLoading
is an gif image progress indicator.您可以重写 XMLHttpRequest 对象的 send() 函数。
此处查看使用纯 Javascript 实现此目的的解决方案。
You could rewrite the send() function of the XMLHttpRequest object.
See a solution for doing just so using pure Javascript here.
据我所知,您正在准备好的处理程序中使用一些 jQuery 的 Ajax 函数。因此,您可以将另一个函数传递给它,该函数将在您的 Ajax 函数获得响应后被调用。例如
As i could understand, you are using some jQuery's Ajax function in your ready handler. So you could just pass it another function, which will be invoked after your Ajax function gets response. For example
您可以使用 .live()/.delegate()。
You could use .live()/.delegate().