我在这里第一次呼救。 不确定我的标题是否正确明确,但这是我现在唯一可以提出的标题。我已经在这里待了2天了,我已经阅读了很多不同的东西,我认为我对此感到非常困惑。我会尽量保持精确。 这是我的问题,
首先,这是我基于此的jQuery代码:
$thumbnails.find( 'a' ).each( function() {
pictures.push({
src: $( this ).attr( 'href' ),
title: $( this ).find( 'img' ).attr( 'title' ),
valign: $( this ).find( 'img' ).data( 'valign' )
});
})
你注意到那里的 pictures.push 。 现在,这就是,
$.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 函数中使用。
非常感谢任何帮助。
答案 0 :(得分: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
适用于您使用它的所有范围。