JQuery Загрузка изображений синхронно с .load - PullRequest
0 голосов
/ 10 августа 2011
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 Ответ

0 голосов
/ 10 августа 2011

попробуйте это:

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;

}

Вы связываете обработчики событий (загрузка и ошибка) после того, как вы загрузили и добавили себя.

РЕДАКТИРОВАТЬ: удалено предложение вернуть значение из событий (не работает, конечно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...