如何在JQuery中伪造AJAX开始/结束事件?

我正在听ajaxStart()和ajaxStop()来显示/隐藏一个微调器,我正在编写服务器时在JS中做一些模拟AJAX的东西。 它只是调用一个函数来生成带有setTimeout()的模拟数据。 现在我只是在微调器上手动调用hide()和show(),但是我真的想在我启动和停止“请求”时告诉JQuery,并让事件通过这种方式,所以当一个真正的 ajax请求仍然在后台时,我不会意外地隐藏()微调器。

这可以轻松完成吗?

编辑:这是我解决的代码,诀窍是维护JQuery.active计数:

 function fakeAJAX(f) { if(jQuery.active++ === 0 ) { jQuery.event.trigger("ajaxStart"); } setTimeout(function () { f(); if(!(--jQuery.active)) { jQuery.event.trigger("ajaxStop"); } }, Math.round(Math.random() * 3000 + 250)); } 

根据您需要调用的来源 :

 jQuery.event.trigger( "ajaxStart" ); 

 jQuery.event.trigger( "ajaxStop" ); 

相应地。

http://jsfiddle.net/zerkms/7RVbz/