2013-02-16 48 views
6

holder.jsHolder.js - 取回DOM元素?

我想動態地將佔位符圖像添加到我的頁面。

插入它像這樣不起作用:

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

因爲持有者腳本已經跑了,而不是尋找新的元素。

我們可以,但是,再次手動運行:

Holder.run() 

但隨後它會掃描所有已添加的元素。

因此......有辦法讓holder.js創建並返回一個DOM元素,這樣我就可以手動添加它,而無需重新運行整個事件嗎?

+0

持有人是一個jQuery插件?還有別的嗎? – 2013-02-16 21:23:15

+0

似乎有一個'add_image'方法,可能可以處理這個 – 2013-02-16 21:23:53

+1

......要小心'{class:'file-name'}'。它會在一些較舊的瀏覽器中打破。使用'className'或''class「'。 – 2013-02-16 21:24:05

回答

8

Node作爲images屬性傳遞給Holder.run,您將能夠在任何單個圖像上運行Holder。 Holder本身不會創建DOM元素,它只會改變src的值。

代碼:

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

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

image.appendTo("body"); 

活生生的例子在這裏:http://jsfiddle.net/imsky/p3DMa/

+0

你甚至可以在它被附加到DOM之前這樣做!太好了! – mpen 2013-02-17 08:36:22

+0

與上述相同只是爲動態潛水'Holder.run({ \t \t \t \t圖像:$( 「#」 + 「IMG」 + obj.rId).find( 'IMG')[0] \t \t \t \t });' – neelabh 2015-07-22 19:14:59