1

我正在尝试使用 jQuery 实现幻灯片放映我有一个名为 SlideShow 的按钮,单击它会触发幻灯片放映。我显示一组缩略图:

<div class="pics">
 <img u="bob" id="pic1" src="/photos/thumbs/file1.jpg" class="apt" f="file1.jpg">
 <img u="rob" id="pic2" src="/photos/thumbs/file2.jpg" class="apt" f="file2.jpg">
 <img u="job" id="pic3" src="/photos/thumbs/file3.jpg" class="apt" f="file3.jpg">
 <img u="tom" id="pic4" src="/photos/thumbs/file4.jpg" class="apt" f="file4.jpg">
 <img u="scott" id="pic5" src="/photos/thumbs/file5.jpg" class="apt" f="file5.jpg">
</div>

您可以看到拇指具有“apt”类,这将允许我获得所有拇指的集合。单击事件处理程序只需要使用 setInterval(f, 5000) 在循环中调用一个函数,这样我每 5 秒读取一个拇指的信息并从服务器加载完整图像。

但无论我怎么做,我都不确定。这是代码:

   var idx='';
   function SlideShow() {
     idx = 1;   //global variable to track index of current thumb inside <div>
     setInterval("GetFullImage()",5000);
   }

   function GetFullImage(){
     var i = $('.apt:nth-child(' + idx + ')').attr("id"); 
     var u = $('.apt:nth-child(' + idx + ')').attr("u"); 
     var f = $('.apt:nth-child(' + idx + ')').attr("f");
     alert('i:=' + i + ' u:' + u + ' f:' + f); <-- always say i, u, f undefined after first time
     idx++;        
   }

怎么了?我没有玩过 setInterval() 调用。

4

2 回答 2

1

您引用的是第 n 个孩子而不是兄弟姐妹。这些图像都是彼此的兄弟姐妹,而不是居住在下一个。我会把它提升一个层次,然后使用 nth-child。或者只是抓住:

$('.pics').children('img').length

作为阈值,然后使用:

$('.pics img:eq('+idx+')')

这样你就可以不断增加 idx 直到达到限制,然后重置计数器。

于 2010-11-11T16:13:06.970 回答
0

试试这个,即从“GetFullImage()”中删除语音标记和括号

setInterval(GetFullImage,5000);
于 2010-11-11T16:12:18.787 回答