JQuery Загрузка изображений синхронно с.load
function loadImage(url) {
var retval=0;
var img = new Image();
$(img).attr('src', url)
.appendTo("#test")
.load( function() {
$(this).hide().fadeIn();
retval=true;
})
.error( function() {
$(this).remove();
retval=false;
});
return retval;
}
Эта функция всегда возвращает 0:(
Я предполагаю, что не могу перезаписать глобальную переменную (retval) из-за асинхронного поведения функции.load. Есть идеи для обхода? Мне бы хотелось, чтобы эта функция также указывала, существует ли данное удаленное изображение или нет.
1 ответ
Попробуй это:
function loadImage(url) {
var retval=0;
var img = new Image();
$(img).load( function() {
$(this).hide().fadeIn();
retval=true;
})
.error( function() {
$(this).remove();
retval=false;
})
.attr('src', url)
.appendTo("#test")
;
return retval;
}
Вы связываете обработчики событий (load и error) после того, как сделали загрузку и добавили себя.
РЕДАКТИРОВАТЬ: удалено предложение вернуть значение из событий (не работает, конечно)