2013-02-16 17 views
6

holder.jsHolder.js - Powrót do DOM?

Chcę dynamicznie dodawać obraz zastępczy do mojej strony.

Wkładanie go jak tak nie działa:

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

Ponieważ skrypt posiadacz już zabrakło i nie jest poszukiwanie nowych elementów.

Możemy jednak uruchomić go ponownie ręcznie:

Holder.run() 

Ale wtedy będzie skanować wszystkie elementy, które są już dodanych.

Więc ... czy można uzyskać plik hold.js, aby utworzyć i przekazać element DOM, aby móc dodać go ręcznie bez ponownego uruchamiania całego elementu?

+0

Holder jest plugin jQuery? Coś innego? –

+0

Wygląda na to, że istnieje metoda 'add_image', która mogłaby obsłużyć to –

+1

... uważaj na' {class: 'nazwa-pliku'} '. Przełamie się to w starszych przeglądarkach. Użyj 'className' lub' "class" '. –

Odpowiedz

8

Przekaż Node jako właściwość images do Holder.run, a będziesz mógł uruchomić Uchwyt na dowolnym pojedynczym obrazie. Sam uchwyt nie tworzy elementu DOM, tylko zmienia wartość src.

Kod:

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

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

image.appendTo("body"); 

żywo przykład tutaj: http://jsfiddle.net/imsky/p3DMa/

+0

Można to nawet zrobić, zanim zostanie dołączony do DOM w ten sposób! Miły! – mpen

+0

samo jak wyżej tylko dla dynamicznych nurkowań 'Holder.run ({ \t \t \t \t zdjęć: $ ("#" + "img" + obj.rId) .find ('img') [0] \t \t \t \t }); ' – neelabh