Я не думаю, что вы можете добраться отсюда - как уже упоминалось @Pointy, вам нужно получить доступ к объекту XmlHttpRequest, чтобы вы могли получить доступ к методу .abort()
на нем. Для этого вам нужен .ajax()
jQuery API, который возвращает вам объект.
Запрет на возможность отмены запроса, другой метод, который следует рассмотреть, - это добавить сведения о таймауте в функцию обратного вызова. Вы можете сделать это двумя способами - во-первых:
var hasImage = false;
$('#errorMessage')
.idle(5000, function() {
if(!hasImage) {
// 1. cancel .load()
// 2. show error message
// 3. Add an aborted flag onto the element(s)
$('#myImage').data("aborted", true);
}
});
И ваш обратный звонок:
$('#myImage')
.attr('src', '/url/anypath/image.png')
.load(function(){
if($(this).data("aborted")){
$(this).removeData("aborted");
return;
}
hasImage = true;
// do something...
});
Или вы можете обойти режим ожидания для этой конкретной функции:
$('#myImage')
.attr('src', '/url/anypath/image.png')
.data("start", (new Date()).getTime())
.load(function(){
var start = $(this).data("start");
$(this).removeData("start");
if(((new Date()).getTime() - start) > 5000)
return;
hasImage = true;
// do something...
});
Ни один из подходов не идеален, но я не думаю, что вы можете напрямую отменить загрузку начиная с jQuery 1.4 - хотя это может быть хорошим запросом к функции для команды jQuery.