基本上我正在通过推文进行循环播放。我想在每条推文之间暂停20秒,在最后一条推文之后,我想回到推文,然后无限重复这个过程。
到目前为止,这是我的代码,我已经尝试通过阅读其他人的例子来解决这个问题,但似乎无法解决问题。我也会继续遇到设置超时功能。
// DisplayTweets.
function displayTweets(tweets)
{
// Checks if any tweets exist.
if ($.isArray(tweets) !== false)
{
// Show error message.
$('p#tweet').text(tweets);
}
else
{
// Parse JSON into Javascript object.
var objTweets = jQuery.parseJSON(tweets);
// Loop through
$.each(objTweets, function(i, objTweet) {
//alert(objTweet.tweet);
$('p#tweet').text(objTweet.tweet);
});
}
}
答案 0 :(得分:4)
只需编写一个要使用值数组调用的函数:
function displayTweets(arr){
$('p#tweet').html(arr[0]);
var i = 1;
setInterval(
function(){
$('p#tweet').html(arr[i]);
i++;
if(i >= tweets.length) i = 0;
},20000);
}
这是一个实例,时间缩短为2秒,用于演示目的:http://jsfiddle.net/tjAa6/
答案 1 :(得分:2)
我不会使用$.each
因为您必须在循环中暂停(可能是delay()
?); setTimeout
可能是执行此操作的最佳方法:只需使用回调函数递归调用show next tweet函数。
showTweet(0);
function showTweet(idx)
{
$("p#tweet").text(objTweets[idx].tweet);
setTimeout(function () { showTweet((idx + 1) % objTweets.length); }, 20000);
}