Tôi muốn hủy hoạt động .load() khi tải() không trở lại sau 5 giây. Nếu nó như vậy tôi hiển thị một thông báo lỗi như 'xin lỗi, không có hình ảnh được tải'.Làm thế nào để hủy bỏ một jquery.load()?
Những gì tôi đã là ...
... việc xử lý thời gian chờ:
jQuery.fn.idle = function(time, postFunction){
var i = $(this);
i.queue(function(){
setTimeout(function(){
i.dequeue();
postFunction();
}, time);
});
return $(this);
};
... đang khởi tạo của thời gian chờ thông báo lỗi:
var hasImage = false;
$('#errorMessage')
.idle(5000, function() {
if(!hasImage) {
// 1. cancel .load()
// 2. show error message
}
});
... các tải hình ảnh:
$('#myImage')
.attr('src', '/url/anypath/image.png')
.load(function(){
hasImage = true;
// do something...
});
Điều duy nhất tôi không thể tìm ra là làm cách nào để hủy tải đang chạy() (nếu có thể).
Edit:
Một cách khác: Làm thế nào để ngăn chặn sự .load() phương pháp để gọi nó là chức năng gọi lại khi nó trở về?
fullware, cảm ơn câu trả lời hữu ích của bạn! Có một điều nhỏ để sửa: Tôi đã phải thay thế dòng "beforeSend (xhr) {" với "beforeSend: function (xhr) {" – Dirk