我正在使用jGFeed从远程服务器检索RSS提要。 没什么难的,真的。我遇到的问题是关于feed的显示:我试图遍历rss的每个重复元素,并显示它。然后将其删除,并显示下一个。
以下是我试图这样做的方法,但没有成功:
$(document).ready(function() {
function loop(links){
var i = 0;
var arrayLength = links.length;
for (i=0;i<=arrayLength;i++){
$('#rssLink').empty().append(links[i]).fadeIn("slow");
setTimeout(function() {
$('#rssLink').fadeOut("fast");
}, 5000);
}
}
function animate(feeds){
var taille = feeds.length;
var links = [];
for ( var i = 0; i < taille; i++ ){
links[i] = "<a href='"+feeds[i].link+"'>"+feeds[i].title+"</a>";
}
loop(links);
}
$.jGFeed('http://www.wrc.com/services/newsrss.jsp',
function(feeds){
// Check for errors
if(!feeds){
// there was an error
return false;
}
animate(feeds.entries);
}, 50);
});
答案 0 :(得分:1)
在我看来,你想要使用这一行超越数组长度:
for (i=0;i<=arrayLength;i++){
你应该去我&lt; arrayLength。
此外,您的'循环'功能将连续快速添加所有链接,每次清除#rssLink元素。要慢慢迭代数组,您可以尝试类似:
function loop(links) {
function showLink(i) {
$('#rssLink').empty().append(links[i]).fadeIn("slow");
setTimeout(function() {
$('#rssLink').fadeOut("fast", function() {
if(i + 1 < links.length) showLink(i + 1);
else showLink(0); // this line causes it to loop again from the start
});
}, 5000);
}
showLink(0);
}