2011-08-29 14 views
6

Ho una matrice di immagini e poi continuo a scorrere ognuna usando $ .each ma non riesco a far visualizzare le immagini sulla pagina, finisce senza che venga mostrato nulla.Aggiungo dinamicamente immagini jquery

<ul id="imagesList"> 
    <li>No images found</li> 
</ul> 

$(function(){ 
      //load image array 
      var images = {'image1':'assets/img/linkedin_30px.png','image2':'assets/img/twitter_30px.png'}; 
      $.each(images, function(){ 
       $('#imagesList').appendTo('<li>' + this + '</li>'); 
      }); 
     }); 

risposta

14

Si utilizza appendTo invece di append. Utilizzare append:

$.each(images, function(){ 
    $('#imagesList').append('<li><img src="' + this + '" /></li>'); 
}); 

O, se ti ostini a usare appendTo:

$.each(images, function(){ 
    $('<li><img src="' + this + '" /></li>').appendTo('#imagesList'); 
}); 

Se si desidera visualizzare un caricatore mentre l'immagine si carica, usare questo:

var $list = $('#imagesList'); 

$.each(images, function(i, src) { 
    var $li = $('<li class="loading">').appendTo($list); 

    $('<img>').appendTo($li).one('load', function() { 
     $li.removeClass('loading'); 
    }).attr('src', src); 
}); 

Ecco the fiddle: http://jsfiddle.net/fyar1u7a/1/

+0

duh! usandolo nell'altro modo. Mi sento stupido haha, grazie! – Tsundoku

+0

@JosephSilber c'è un modo per aggiungere caricatore a queste immagini caricate? – KAD

+0

@JosephSilber grazie, lo verificherò Ho fatto una soluzione anche se .. http://greencool.co/green_cool_final/products/ – KAD

-1

C'è poco problema con la tua funzione appendTo. Lo stai usando nel modo sbagliato.

Prova sottostante Codice ..

<ul id="imagesList"> 
    <li>No images found</li> 
</ul> 
$(function(){ 
      //load image array 
      var images = {'image1':'assets/img/linkedin_30px.png','image2':'assets/img/twitter_30px.png'}; 
      $.each(images, function(){ 
       $('<li>' + this + '</li>').appendTo('#imagesList'); 
      }); 
     }); 
Problemi correlati