0

我第一次在这里求救。不确定我的标题是否正确明确,但这是我现在唯一能想到的。我已经做了两天了,我读了很多不同的东西,我觉得我完全糊涂了。我会尽量准确。这是我的问题,

首先,这是我基于的 jQuery 代码:

$thumbnails.find( 'a' ).each( function() {
        pictures.push({
            src: $( this ).attr( 'href' ),    
            title: $( this ).find( 'img' ).attr( 'title' ),
            valign: $( this ).find( 'img' ).data( 'valign' )
        });
    })

你注意到了图片。推进去。现在,这与,

$.vegas( 'slideshow', { 
        backgrounds: pictures,
        delay: 4000,
        fade:5000
     })( 'overlay' );

请注意背景属性如何使用图片来获取所需的图像名称。我现在不知道如何调用图片。它是关联数组还是对象?

无论如何,我不想从 HTML 节点获取图像的文件名。我正在使用 PHP 来获取服务器上目录中的文件名,并使用这些文件名生成 XML 文档。这是在我的 PHP 脚本中生成 XML 文档的部分,(我只需要 5 张图片即可)

header("Content-type: text/xml");
    echo '<?xml version="1.0"?>';
    echo "<img>";
    for($i=0;$i<5;$i++){ 
        echo "<src>img/" . $rep_aleatoire[$i] . "/" . $img_aleatoire[$i] . "</src>";
        echo "<title>" . $img_aleatoire[$i] . "</title>";
    }
    echo "</img>";

这就是 XML 文档的样子,

<img>
<src>img/portraits/DSC_0161.jpg</src>
<title>DSC_0161.jpg</title>
<src>img/nature/DSC_0019 copy-tych 3.jpg</src>
<title>DSC_0019 copy-tych 3.jpg</title>
<src>img/portraits/DSC_0157.jpg</src>
<title>DSC_0157.jpg</title>
<src>img/editions/DSC_0053.jpg</src>
<title>DSC_0053.jpg</title>
<src>img/editions/DSC_Ant.jpg</src>
<title>DSC_Ant.jpg</title>
</img>

这是我用来获取 XML 数据的 JQUERY 部分,

$.get("main.php", function(data){
        var rep = new Array;
        var file = new Array;
        $(data).find("img").each(function(){
            $(this).find('src').each(function(i){
                rep[i] = $(this).text();
            });
            $(this).find('title').each(function(i){
                file[i] = $(this).text();
            });;
            for(i=0;i<rep.length;i++){
                pictures.push({
                    src: $(rep[i]),    
                    title: $(file[i])
                });
            }
         });
});

图片已被初始化超出此函数的范围,因此它应该可以在我需要的任何地方使用,但它不是。如果我尝试在该函数之外访问它,它是空的。此外,当在该函数的范围内时,它包含的只是对象。我什至不知道我是否以正确的方式做这件事。我尝试了很多不同的方法,我什至不记得了。我只是无法获得 XML 文档中生成的实际数据。

我当然希望我已经足够清楚了,你们明白我在追求什么。我只是想生成正确格式的图片,以便在$vegas函数中使用它。

任何帮助将不胜感激。

4

1 回答 1

0

首先。总是声明你的变量。

错误声明:

var rep = new Array;
var file = new Array;

应该是

var rep = new Array();
var file = new Array();

甚至更好:

var rep = [];
var file = [];

声明i,您在最后一个循环中使用。

for(var i=0;i<rep.length;i++){
...

甚至更好:

var i;
for(var i=0;i<rep.length;i++){
..

完成此操作后,您会注意到您尝试通过数组值访问 jquery 对象。

pictures.push({
  src: $(rep[i]),    
  title: $(file[i])
});

你可能的意思是:

pictures.push({
  src: rep[i],
  title: rep[i]
});

当然,请确保var pictures在您使用它的所有范围内都可用。

于 2012-08-13T02:22:18.740 回答