小编典典

jQuery ajax-全局设置。是否有可能知道哪个事件/元素触发了ajax调用?

ajax

这很容易解决,但是如果将其包装在全局ajax设置中会很好

当我运行ajax调用时,我想知道beforeSend选项中哪个元素/事件触发了ajax调用。

有一种简洁的方法吗?


阅读 293

收藏
2020-07-26

共1个答案

小编典典

beforeSend回调有两个参数:XMLHTTPRequest实例和当前AJAX调用使用的设置。

因此,如果您在context选项中传递了触发元素和事件,则beforeSend即使您在全局设置中对其进行定义,它们也将可用:

$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        var element = settings.context.element;
        var event = settings.context.event;

        // Do something with 'element' and 'event'...
    }
});

$("selector").click(function(e) {
    $.ajax("url", {
        // your settings,
        context: {
            element: this,
            event: e
        }
    });
});
2020-07-26