preloader img with callback

by Евгений

HTML

<div id="photo">loading...</div>

CSS

#photo > img {
    width: 200px;
}

JavaScript

//подгрузка фото
    function preloadPhoto(src, callback) {
        if (!callback || !src) return;
        var img = new Image();
        img.src = src;
        if (img.complete || img.readyState === 4) {
            callback();
        }
        else {
            $(img).on("load error onreadystatechange",function(e){
                if (e.type === "error") {
                    //ошибка загрузки фото
                }
                else {
                    callback();
                }
            });
        }
    }
$(function() {
    var src = 'http://s1.goodfon.ru/image/562960-7400x5343.jpg';
    preloadPhoto(src, function() {
        var src = 'http://s1.goodfon.ru/image/562960-7400x5343.jpg';
        $('#photo').html('<img src=' + src + '>');
    });
})