Динамически добавляйте изображения для слайд-шоу из HTML (jQuery map/get)

Я использую удивительный плагин jQuery BackStretch для моего фонового слайд-шоу. Это самый распространенный способ передачи изображений.

$.backstretch([
    "http://dl.dropbox.com/u/515046/www/outside.jpg", 
    "http://dl.dropbox.com/u/515046/www/garfield-interior.jpg", 
    "http://dl.dropbox.com/u/515046/www/cheers.jpg"
], {duration: 3000, fade: 750});

Я не хочу предоставлять изображения для него путем жесткого кодирования, хотя я хочу, чтобы функция получала то, что мой PHP генерирует внутри этого контейнера. Вот что у меня так далеко.

var images = $('#background img').map(function() { return this.src; }).get();
$.backstretch([$images], {duration: 3000, fade: 750});

И это, очевидно, не работает - согласно FireBug переменные изображения не определены (?) . хотя, если я "предупреждаю" переменную, она показывает разделенные запятыми URL-адреса изображений.

Есть идеи, что я делаю не так? Спасибо!

1 ответ

Решение

Этого должно быть достаточно. backstretch ожидает, что первый аргумент будет массивом строк, которые являются ссылками на изображения.

$(document).ready(function () {
    var images = [];

    // iterate over your selection
    $('#background img').each(function () {
        // save source to list
        images.push(this.src);
    });

    // use plugin
    $.backstretch(images, {duration: 3000, fade: 750});
});

Также я предполагаю, что ваш HTML выглядит примерно так...

<div id="background">
    <img src="http://dl.dropbox.com/u/515046/www/outside.jpg" />
    <img src="http://dl.dropbox.com/u/515046/www/garfield-interior.jpg" />
</div>
Другие вопросы по тегам