为什么我的`load`函数没被调用?

时间:2016-04-01 02:07:23

标签: javascript jquery dom

我正在尝试预加载我用某个属性装饰的某些图像,我想知道你们是否可以帮我弄清楚这里出了什么问题。我有

          var barlen = $('#SSWEprogressbar').width(),
              $elems = $('[data-srcurl]'),
                   n = $elems.length;
          for ( var k = 0; k < n; ++k )
          {
              var $elem = $($elems[k]);
              var img = new Image(),
                  url = $elem.attr('data-srcurl');

              $(img).load(function(){
                 console.log("we're here");//TEST
                 $('#SSWEloaderfront').attr('src',url);

                 $('#SSWEloadprogress').width(k/n*barlen + "px");
              });
              var srctgt = $elem.attr('data-srctgt');
              if ( srctgt == "srcattr" )
              {
                $elem.attr('src',url);
              }
              else if ( srctgt == "bgimg" )
              {
                $elem.css('background-image',url);
              }
          }

然后

console.log("we're here");//TEST

未被调用。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您没有在img元素上设置src属性,因此负载永远不会触发。你需要添加$(img).attr('src',url);