JQuery проверить, если изображение загружено - PullRequest
3 голосов
/ 23 марта 2011

Мне нужна помощь со следующим кодом, который не работает:

var timeoutID=0;
var currentImage=0;//first image is position 0 in arrImages array
var arrImages=[bla bla bla array of image URLs];
function slideShow()
{
   if($('#myImg').complete)//   <------- Here is where it fails as that's UNDEFINED.
   {
      //curentImage is a global var that remebembers the on-screen image array key
      var nextImage=currentImage+1;

      //arrImages is the array of image URLs
      if(nextImage>=arrImages.length){nextImage=0;}

      $('#myImg').attr('src',nextImage);

      clearTimeout(timeoutID);
      //Change image each second after previous image was loaded
      timeoutID=setTimeout("slideShow()",1000);
   }
   else
   {
      $('#myImg').load(slideShow);
   }
}

В основном я хочу менять src для #myImg каждую секунду при условии, что счетчик запускается после загрузки изображения.

* Я ненавижу кнопку кода в текстовом редакторе для переполнения стека!

Ответы [ 2 ]

16 голосов
/ 23 декабря 2011

'complete' для нативного объекта javascript. поэтому вы должны получить объект javascript из jQuery. как,

$('#myImg')[0].complete

или

$('#myImg').get(0).complete
2 голосов
/ 23 марта 2011

Если я правильно помню, изображение получает ширину и высоту, когда оно загружается. Так что я думаю, что вы можете проверить ширину, если изображение. И до тех пор, пока это 0, изображение не загружается.

...