Jquery从XML文件加载图像集

时间:2012-08-09 08:47:43

标签: jquery xml image flash prettyphoto

嗨,我有一个这样的剧本:

jQuery(window).ready(function($) {
    $.fn.prettyPhoto();
    $.get("xml/kategoria1.xml",{},function(xml){
    $('image',xml).each(function(i) {
        lightbox = $(this).find("lightbox").text();
      openLightbox(lightbox)
    });
});
});

function openLightbox(path) {
    $.prettyPhoto.open(path);

它只打开xml中的一个图像,我想打开来自xml的所有图像,称为lightbox。

这是我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<images>

<image source="Zdjecia/Galeria/Kategoria1/Miniaturki/image1.jpg" lightbox="Zdjecia/Galeria/Kategoria1/Duze/image1.jpg">
<lightbox>Zdjecia/Galeria/Kategoria1/Duze/image1.jpg</lightbox>

</image>

<image source="Zdjecia/Galeria/Kategoria1/Miniaturki/image2.jpg" lightbox="Zdjecia/Galeria/Kategoria1/Duze/image2.jpg">
<lightbox>Zdjecia/Galeria/Kategoria1/Duze/image2.jpg</lightbox>

</image>

<image source="Zdjecia/Galeria/Kategoria1/Miniaturki/image3.jpg" lightbox="Zdjecia/Galeria/Kategoria1/Duze/image3.jpg">
<lightbox>Zdjecia/Galeria/Kategoria1/Duze/image3.jpg</lightbox>
</image>


</images>

请求帮助。

问候克里斯蒂安

1 个答案:

答案 0 :(得分:1)

问题是,在您的代码中,您将为每个图像打开一个灯箱。

您应该做的是创建一个包含所有图像的数组,然后将其传递给灯箱。

而不是:

$('image',xml).each(function(i) {
        lightbox = $(this).find("lightbox").text();
      openLightbox(lightbox)
    });

这样做:

images = new Array();
$('image',xml).each(function(i) {
      image = $(this).find("lightbox").text();
      images.push(image);
    });
openLightbox(images)