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

2024-04-26

我正在听 ajaxStart() 和 ajaxStop() 来显示/隐藏微调器,并且在编写服务器时我正在 JS 中执行一些模拟 AJAX 操作。它只是调用一个函数来使用 setTimeout() 生成模拟数据。现在我只是在微调器上手动调用 hide() 和 show() ,但我真的很想告诉 JQuery 当我开始和停止我的“请求”时,并让事件以这种方式进行,所以我不会在realajax 请求仍在后台进行。

这很容易做到吗?

EDIT:这是我确定的代码,诀窍是维护JQuery.active count:

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));
}

根据sources https://github.com/jquery/jquery/blob/master/src/ajax.js#L604你只需要调用:

jQuery.event.trigger( "ajaxStart" );

and

jQuery.event.trigger( "ajaxStop" );

相应地。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JQuery 中伪造 AJAX 开始/结束事件? 的相关文章

随机推荐