首先从xml读取照片链接并使用Photoswipe打开它

时间:2012-04-26 03:23:02

标签: javascript xml global-variables photoswipe

我想要做的是将照片链接保存到数组中,然后将其传递给照片游戏,以便照片可以查看照片。

不幸的是,jquery xml解析无法更改全局变量。我可以在parseXml(xml)函数中更改全局变量的值。然后我可以将链接传递给函数(window,PhotoSwipe)。

 var cars = new Array();

 var carcar;

$(document).ready(function()
{
$.ajax({
    type: "GET",
    url: "http://www.utravel.com.hk/mobile-app/news-photo-xml.php?id=3256",
    dataType: "xml",
    success: function(xml) { parseXml(xml); }
        });
});

function parseXml(xml)
{ 
$(xml).find("item").each(function()
{  
carcar="http://www.utravel.com.hk/cms/news_photo/original/"+$(this).find("photo").text().substring(5);
        cars.push(carcar);   

});

}               
    (function(window, PhotoSwipe){

        document.addEventListener('DOMContentLoaded', function(){

            var
                options = {
                    preventHide: true,
                    getImageSource: function(obj){
                        return obj.url;
                    },
                    getImageCaption: function(obj){
                        return obj.caption;
                    }
                },
                instance = PhotoSwipe.attach( 
                    [
                        { url: 'cars[0]', caption: 'Image 001'},
                        { url: 'cars[1]', caption: 'Image 002'},
                        { url: 'cars[2]', caption: 'Image 003'},
                    ], 
                    options 
                );

                instance.show(0);

        }, false);

    }(window, window.Code.PhotoSwipe));

1 个答案:

答案 0 :(得分:0)

我认为现在你可能已经解决了你的问题,但你的网址不应该在冒号之间,应该是这样的:

{ url: cars[0], caption: 'Image 001'},
{ url: cars[1], caption: 'Image 002'},
{ url: cars[2], caption: 'Image 003'},

否则,你正在做的是说网址实际上是cars[x],当然它永远不会被找到。