jquery ajax – 全局设置。 是否有可能知道哪个事件/元素触发了ajax调用?
这很容易解决,但如果它被包装在全局ajax设置中会很好
当我运行ajax调用时,我想知道哪个元素/事件触发了beforeSend选项中的ajax调用。
这样做有简洁的方法吗?
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 } }); });
从这里开始
全局Ajax事件处理程序
这些方法注册在页面上的任何AJAX请求发生某些事件(例如初始化或完成)时调用的处理程序。 如果jQuery.ajaxSetup()
的全局属性为true,则默认情况下会对每个AJAX请求触发全局事件。 注意:无论global的值是什么,都不会为跨域脚本或JSONP请求触发全局事件。
.ajaxComplete() // initialize in for all ajax request and set event in jQuery.ajaxSetup()
.ajaxComplete() – 注册Ajax请求完成时要调用的处理程序。 这是一个Ajax事件。