中止 jQuery().load()
IT技术
javascript
ajax
jquery
2021-03-09 07:02:13
4个回答
您不能.load()
直接使用它,因为它返回用于链接的 jQuery 对象,但是如果您更改为完整$.ajax()
调用,则.html()
可以,如下所示:
var xhr = $.ajax({
url: 'mypage.htm',
success: function(data) {
$("#myElement").html(data);
}
});
//if needed, abort the request later..
xhr.abort();
这使用.abort()
XMLHttpRequest 对象上的方法来中止加载。
尼克的回答几乎是我所需要的,但不完全是。我使用 .load() 仅从页面加载图像。所以,扩展尼克的答案......
所以,而不是...
$('#myElement').load('mypage.htm #myImage');
我现在用...
var xhr = $.ajax({
url: 'mypage.htm',
success: function(data) {
$("#myElement").html($(data).find("#myImage"));
}
});
//if needed, abort the request later..
xhr.abort();
您可以通过jQuery.ajax
手动执行此操作。它将返回一个XMLHttpRequest
对象,您可以abort
根据需要调用该对象。在成功处理程序中,您可以使用jQuery.html
$("#myElement").load("/mypage #mayImage", function(response, status, xhr) {
if (status == "error") {
xhr.abort();
}
});
应该像这样工作..
或者在另一个事件上,我在一个长字段上发送了一个验证,用户更改了内容,我想停止之前的检查重新检查:
xhr.abort();
$("#myElement").load("/mypage #mayImage", function(response, status, xhr) {
if (status == "error") {
xhr.abort();
}
});