Javascript 集合区间法
我正在尝试使用jQuery实现幻灯片放映 我有一个叫做SlideShow的按钮,点击它会触发幻灯片放映。 我显示一组缩略图:Javascript 集合区间法,javascript,setinterval,Javascript,Setinterval,我正在尝试使用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="f
<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>
你可以看到thumbs有一个类“apt”,它允许我获取所有thumbs的集合。
click事件处理程序只需要在循环中调用一个具有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++;
}
varidx='';
函数幻灯片(){
idx=1;//用于跟踪内部当前拇指索引的全局变量
setInterval(“GetFullImage()”,5000);
}
函数GetFullImage(){
var i=$('.apt:n子项('+idx+')).attr(“id”);
var u=$('.apt:n个子('+idx+')).attr(“u”);
var f=$('.apt:n个子('+idx+')).attr(“f”);
警报('i:='+i+'u:'+u+'f:'+f);尝试此操作,即从“GetFullImage()”中删除语音标记和括号
尝试此操作,即从“GetFullImage()”中删除语音标记和括号
您引用的是第n个孩子,而不是兄弟姐妹。这些图像都是彼此的兄弟姐妹,而不是一个位于下一个。我会将其提升一个级别,然后使用第n个孩子。或者只抓取:
$('.pics').children('img').length
作为阈值,然后使用:
$('.pics img:eq('+idx+')')
通过这种方式,您可以不断增加idx,直到达到限制,然后重置计数器。您引用的是第n个孩子,而不是兄弟姐妹。这些图像都是彼此的兄弟姐妹,而不是一个位于下一个。我会将其提升一个级别,然后使用第n个孩子。或者只抓取:
$('.pics').children('img').length
作为阈值,然后使用:
$('.pics img:eq('+idx+')')
这样,您可以不断增加idx直到达到限制,然后重置计数器。这是一个不错的建议,但与问题无关。Projapati调用setInterval的方式是有效的。第一个参数可以是函数引用或代码字符串。这不是一个坏建议,但与问题无关。Projapat的方式我正在调用的setInterval有效。第一个参数可以是函数引用或代码字符串。