I'd like to cancel a .load() operation, when the load() does not return in 5 seconds. If it's so I show an error message like 'sorry, no picture loaded'.
What I have is...
...the timeout handling:
jQuery.fn.idle = function(time, postFunction){  
    var i = $(this);  
    i.queue(function(){  
        setTimeout(function(){  
            i.dequeue();
            postFunction();  
        }, time);  
    });
    return $(this); 
};
... initializing of the error message timeout:
var hasImage = false;
$('#errorMessage')
    .idle(5000, function() {
        if(!hasImage) {
            // 1. cancel .load()            
            // 2. show error message
        }
    });
... the image loading:
$('#myImage')
     .attr('src', '/url/anypath/image.png')
     .load(function(){
         hasImage = true;
         // do something...
      });
The only thing I could not figure out is how to cancel the running load() (if it's possible).
Edit:
Another way: How do I prevent the .load() method to call it's callback function when it's returning?
 
     
     
     
     
     
     
     
    