Я хотел бы отменить операцию .load(), когда load() не вернется через 5 секунд. Если это так, я показываю сообщение об ошибке вроде "извините, картинка не загружена".
У меня есть...
... обработка таймаута:
jQuery.fn.idle = function(time, postFunction){
var i = $(this);
i.queue(function(){
setTimeout(function(){
i.dequeue();
postFunction();
}, time);
});
return $(this);
};
... инициализация тайм-аута сообщения об ошибке:
var hasImage = false;
$('#errorMessage')
.idle(5000, function() {
if(!hasImage) {
// 1. cancel .load()
// 2. show error message
}
});
... загрузка изображения:
$('#myImage')
.attr('src', '/url/anypath/image.png')
.load(function(){
hasImage = true;
// do something...
});
Единственное, что я не мог понять, это как отменить текущую нагрузку() (если это возможно).
Изменить:
Другой способ: как мне запретить метод .load() вызвать функцию обратного вызова при возврате?