使用 Jquery 我需要触发一个 ajaxComplete 事件。
目前我正在使用此代码但没有成功
$.getJSON(assetUrl, function (data) {
...
$.trigger("ajaxComplete");
有错误:
TypeError: 'undefined' is not a function (evaluating '$.trigger("ajaxComplete")')
知道我做错了什么吗?谢谢
使用 Jquery 我需要触发一个 ajaxComplete 事件。
目前我正在使用此代码但没有成功
$.getJSON(assetUrl, function (data) {
...
$.trigger("ajaxComplete");
有错误:
TypeError: 'undefined' is not a function (evaluating '$.trigger("ajaxComplete")')
知道我做错了什么吗?谢谢
该ajaxCompleted
事件在 DOM 上触发,您需要在 jQuery 包装器元素上调用该trigger
方法$(document).trigger(...)
:例如。
对象上没有静态函数“触发器” jQuery
(这就是错误消息告诉您的内容),您可以使用$.event.trigger
- 尽管我担心这是内部的。
但是,您不需要手动操作;getJSON
确实触发了事件本身。要中止正在运行的 ajax 请求,请参阅XHR 对象abort
的方法。
您可以定义一个全局 jQuery ajaxComplete(和 ajaxError)函数,该函数将在文档准备就绪时以及在每个完成的 ajax 请求之后运行。您可以像这样在初始页面加载(或任何时候)定义 ajaxComplete 函数:
$(function(){
$(document).ajaxComplete(function(){
// on complete code
}).ajaxError(function(){
// on error code
});
});
要随时调用此事件处理程序,只需执行以下命令:
$(document).triggerHandler('ajaxComplete');
如果其他人在看这个,手动触发 ajaxComplete 的正确方法是$(document).trigger('ajaxComplete', [xhr, settings]);
将 xhr 对象传递给 ajaxComplete 触发事件可能很重要,因为事件处理程序可能需要它。
但是,如果您不是通过 jquery 发出请求,您只需要这个,因为 jquery 会自动为您处理这个。