jQuery与.load同步加载图像

时间:2011-08-10 10:12:23

标签: jquery image load asynchronous

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 :(得分:0)

试试这个:

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;

}

在完成加载并追加自身后,您将绑定事件处理程序(加载和错误)。

编辑:删除建议以从事件中返回值(将无法使用)