将图像标题推入数组,然后显示它们

时间:2012-04-24 14:16:32

标签: jquery arrays events

我有以下问题。我的index.html中有三张图片:

<div class = "someclass">
<img src = "1.jpg" title="jeeden"/>
<img src = "2.jpg" title="dwa"/>
<img src = "3.jpg" title="trzy"/>
</div>

我希望它们加载,并在加载时 - 在jquery中将它们的标题推送到我的数组,这里是代码:

var titletable = [];

$(document).ready(function() {

$("img").load(function(event){
titletable.push($(this).attr('atrybut1'));
});


$.each(titletable, function(i, v) {
$('.someclass').append("<li>" + i + ": " + v + "</li>");
}); 

当我将$.each迭代移动到.load函数时,它会显示数组元素,但是错误的方式是,每次加载图像时都会显示数组的状态。我想在加载所有三个图像时显示titletable的内容。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

你穿着.each外面的.load,负载通常会在以后发生

var titletable = [];

$(document).ready(function() {
   var totalImages = $("img").length;
   var loadedImages = 0;

   $("img").load(function(event){
       titletable .push($(this).attr('title'));
       loadedImages++; 

       if (loadedImages == totalImages)
           $.each(titletable, function(i, v) {
              $('.someclass').append("<li>" + i + ": " + v + "</li>");
           }); 
});

我保留当前加载的图像的数量,当加载所有图像时,我正在使用该数组。