【问题标题】:Howto trigger ajaxStart and ajaxStop如何触发 ajaxStart 和 ajaxStop
【发布时间】:2012-09-20 13:06:30
【问题描述】:

我正在尝试触发 ajaxStart 和 ajaxStop 事件以显示正在加载的消息,但我对如何执行此操作感到很困惑。据我了解,这些事件是由每个 ajax 事件触发的,但我仍然不确定这到底意味着什么。 单击 href 链接或提交按钮是否也会触发 ajax 事件?似乎不是因为单击超链接或按钮时,我下面的代码中没有出现任何警报。 我刚开始学习 JQuery,我可能缺少一些明显的东西。

有人可以解释一下如何进行这项工作吗?

我的<head> 标签中有这个

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>

这只是在开头&lt;body&gt;标签之前:

<script language="JavaScript" type="text/javascript">

// prepare the form when the DOM is ready 
$(document).ready(function() { 
$(document).ajaxStart(function() {
    alert('ajaxStart');
    $('#ajaxBusy').show(); 
});
$(document).ajaxStop(function() {
    alert('ajaxStop');
    $('#ajaxBusy').hide(); 
});

</script>

编辑: 我想通过单击一个 href 链接来使加载弹出窗口出现,从而触发 ajaxStart 事件。 链接调用的另一个页面需要相当长的时间来加载,我希望同时显示加载消息。

<a href="http://www.mysite.com/long-loading-page.php">link</a> 

我将如何使用 ajax 事件来做到这一点?

【问题讨论】:

标签: jquery ajax


【解决方案1】:

要触发 AJAX 事件您必须启动 AJAX 请求

表示$.ajax$.get$.post$.load

点击链接或按钮是不行的。但是,您可以为每个 a 元素注册自己的 click 处理程序,以便它使用 $.load 检索请求的 URL,然后使用该新内容更新 DOM。不过,这绝对不能算作“初学者的 jQuery”。

更好的解决方案可能是 new 页面使用document.write 或类似方法在页面加载时弹出弹出窗口,然后在完成后将其删除。

【讨论】:

  • 在起始帖的底部
【解决方案2】:

ajaxStartajaxStopjQuery 事件,只要发出任何 AJAX 请求就会触发。在这里阅读:http://api.jquery.com/ajaxStart/ jQuery 有一个优秀的文档。

当您单击链接或提交按钮时,浏览器只会加载一个新页面,而不会启动任何 AJAX 请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2016-09-09
    相关资源
    最近更新 更多