2013-02-16 5 views
6

holder.jsHolder.js - Zurück DOM-Element?

Ich möchte ein Platzhalterbild dynamisch zu meiner Seite hinzufügen.

einlegen, wie es so nicht funktioniert:

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

Da der Halter Skript hat bereits lief und ist nicht für die neuen Elemente zu suchen.

Wir können jedoch, führen Sie es manuell wieder:

Holder.run() 

Aber dann wird es alle Elemente scannen, die bereits hinzugefügt werden.

Also ... ist es möglich, holer.js zu erstellen und mir ein DOM-Element zurückzugeben, damit ich es manuell hinzufügen kann, ohne die ganze Sache neu zu starten?

+0

Holder ist ein jQuery-Plugin? Etwas anderes? –

+0

Scheint so, als gäbe es eine 'add_image'-Methode, die möglicherweise damit umgehen könnte –

+1

... Vorsicht vor' {class: 'Dateiname'} '. Es wird in einigen älteren Browsern brechen. Verwende 'className' oder' class' '. –

Antwort

8

Pass eine Node als images Eigenschaft Holder.run und Sie werden in der Lage sein Halter auf jedem einzelnen Bild zu laufen. Holder selbst erstellt kein DOM-Element, sondern ändert nur den Wert src.

Code:

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

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

image.appendTo("body"); 

Live-Beispiel hier: http://jsfiddle.net/imsky/p3DMa/

+0

Sie können es sogar tun, bevor es auf diese Weise an das DOM angehängt wird! Nett! – mpen

+0

wie oben nur für dynamischen Tauchgänge 'Holder.run ({ \t \t \t \t Bilder: $ ("#" + "img" + obj.rId) .find ('img') [0] \t \t \t \t }); ' – neelabh

Verwandte Themen