我正在审查微软的代码和库,以便与 ajax 进行通信是jquery.unobtusive-ajax.js,在该文件中,他们重写了发出请求的主要功能,只有一些选项。但是如果他们使用 jquery 为什么他们需要修改呢?当然,有了这个代码,所有的全局 hadlers 都关闭了。
我做了一点修改并不酷但有效,有更多时间我会用更清洁的解决方案更新它。
打开文件jquery.unobtusive-ajax.js。
转到函数 asyncRequest 并在 $.extend 选项中看到四个事件beforeSend、完成、成功和错误,您可以在那里引发全局触发器。
原始代码:
complete: function () {
loading.hide(duration);
getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(this, arguments);
},
修改后的代码:
complete: function () {
loading.hide(duration);
getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(this, arguments);
$(document).trigger('ajaxComplete');
},