2011-08-29 15 views
6

Tengo una matriz de imágenes y luego repito cada una utilizando $ .each pero no puedo mostrar las imágenes en la página, pero termina sin que se muestre nada.Agregue imágenes dinámicamente a 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>'); 
      }); 
     }); 

Respuesta

14

está usando el appendTo en lugar de append. Utilice append:

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

O, si usted insiste en el uso de appendTo:

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

Si desea mostrar un cargador mientras la imagen se está cargando, utilice esto:

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); 
}); 

Aquí es el violín: http://jsfiddle.net/fyar1u7a/1/

+0

la! usándolo a la inversa. Me siento estúpido jaja, gracias! – Tsundoku

+0

@JosephSilber ¿hay alguna manera de agregar cargador a estas imágenes cargadas? – KAD

+0

@JosephSilber gracias, lo comprobaré. He hecho una solución alternativa aunque .. http://greencool.co/green_cool_final/products/ – KAD

-1

Hay un pequeño problema con su función appendTo. Lo estás usando de manera incorrecta.

Por favor, intente más adelante código ..

<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'); 
      }); 
     }); 
Cuestiones relacionadas