2013-02-16 21 views
6

holder.jsHolder.js - Ripristina elemento DOM?

Desidero aggiungere dinamicamente un'immagine segnaposto alla mia pagina.

Inserimento in questa maniera non funziona:

$('<li>',{class:'file-item'}) 
    .append($('<img>',{'data-src':'holder.js/150x150'})) 
    .append($('<span>',{class:'file-name'}).text(file.name)) 
    .appendTo('#file-list'); 

Poiché lo script titolare ha già eseguito e non è alla ricerca di nuovi elementi.

Possiamo, tuttavia, eseguire nuovamente manualmente:

Holder.run() 

Ma allora la scansione di tutti gli elementi già aggiunti.

Quindi ... c'è modo che possa ottenere holder.js per creare e restituirmi un elemento DOM in modo da poterlo aggiungere manualmente senza rieseguire il tutto?

+0

Holder è un plugin jQuery? Qualcos'altro? –

+0

Sembra che ci sia un metodo 'add_image' che potrebbe gestire questo –

+1

... attenti a' {class: 'nome-file'} '. Si romperà in alcuni browser più vecchi. Usa 'className' o' "class" '. –

risposta

8

Passa un Node come images a Holder.run e sarai in grado di eseguire Holder su qualsiasi immagine individuale. Il titolare stesso non crea un elemento DOM, cambia solo il valore src.

Codice:

var image = $("<img>").attr({ 
    "data-src": "holder.js/300x200" 
}) 

Holder.run({ 
    images: image[0] 
}); 

image.appendTo("body"); 

vivo esempio qui: http://jsfiddle.net/imsky/p3DMa/

+0

Puoi persino farlo prima che venga aggiunto al DOM in questo modo! Bello! – mpen

+0

Come sopra solo per immersioni dinamici 'Holder.run ({ \t \t \t \t immagini: $ ("#" + "img" + obj.rId) .find ('img') [0] \t \t \t \t }); ' – neelabh

Problemi correlati