2013-02-16 3 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

Holder плагин JQuery? Что-то другое? –

+0

Похоже, существует метод 'add_image', который может обрабатывать этот –

+1

... остерегайтесь' {class: 'file-name'} '. Он сломается в некоторых старых браузерах. Используйте класс className или class. –

ответ

8

Пройдите Node как images собственности до Holder.run, и вы сможете запускать держатель на любом отдельном изображении. Сам держатель не создает элемент 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

+0

же, как и выше, только для динамических погружений 'Holder.run ({ \t \t \t \t изображения: $ ("#" + "IMG" + obj.rId) .find ('IMG') [0] \t \t \t \t }); ' – neelabh