Javascript 对数组上的连续循环有问题
请看一下这个演示,让我知道为什么循环会在第三个元素停止,而不能再次取回第一个项目Javascript 对数组上的连续循环有问题,javascript,jquery,Javascript,Jquery,请看一下这个演示,让我知道为什么循环会在第三个元素停止,而不能再次取回第一个项目 var-appTxt=$('.smart-txt').hide(), 新闻=['news 1'、'news 2'、'news 3'], 计数=0; 函数changeNews(){ fadeIn(2000).delay(3000).fadeOut(2000,函数(){ changeNews(); }).text(新闻[count++]); } changeNews() 所做的更改 if(count == news.
var-appTxt=$('.smart-txt').hide(),
新闻=['news 1'、'news 2'、'news 3'],
计数=0;
函数changeNews(){
fadeIn(2000).delay(3000).fadeOut(2000,函数(){
changeNews();
}).text(新闻[count++]);
}
changeNews()代码>
所做的更改
if(count == news.length ){
count = 0;
}
添加上述条件只是为了在count变量到达最后一个元素时初始化它
工作演示
var-appTxt=$('.smart-txt').hide(),
新闻=['news 1'、'news 2'、'news 3'],
计数=0;
函数changeNews(){
fadeIn(2000).delay(3000).fadeOut(2000,函数(){
changeNews();
}).text(新闻[count++]);
if(count==news.length){
计数=0
}
}
changeNews()代码>
尝试像下面这样重写您的逻辑
function changeNews() {
appTxt.fadeIn(2000).delay(3000).fadeOut(2000, function() {
changeNews();
}).text(news[count++ % news.length]);
}
当计数
大于数组的长度
长度时,它将返回未定义
。因此.text(未定义)
将充当获取者
而不是设置者
。这就是为什么你一次又一次地看到最后的文本
与其每次都计算,不如存储长度var intNewsLength=news.length代码>如何?请您解释一下:)