【发布时间】:2011-06-23 23:40:05
【问题描述】:
我正在为网站设置循环报价,但在数据已经使用过一次后,我无法重新加载数据。
我已经建立了一个包含大量数据的 XML 文件。数据包括引用、作者和作者的职位(引用、作者、标题)。
然后我有一个 jQuery .ajax 调用并将其存储在变量 xmlData 中。
xmlData 然后用于将 html 附加或添加到指定的 id 标签。
我正在使用 setInterval() 来移动 xml 数据。
我们的想法是像这样循环遍历它:1 | 2 | 3| 1| 2 | 3 以此类推。但是当它回来时,在数据被附加到一个 ID 之后,它就不再显示了。就好像数据已从 XML 文件中删除一样。
任何帮助将不胜感激。代码如下,以及我正在进行测试的网站 URL。
<script language="javascript" type="text/javascript">
var xmlData;
var xmlFAILdata;
var nextE = 0;
var ttlE;
var quote;
var author;
var title;
$(function(){
$.ajax({
type: "GET",
url:"/wp-content/themes/privilegeofpersecution/endorsements.xml",
data: "",
dataType:"xml",
async: false,
success: function(xml){
//alert("XML SUCCESS!");
xmlData = xml;} ,
error: function(xmlFAIL){
alert("XML FAIL");
}
});
ttlE = $(xmlData).find('endorsement').length;
//Since .length return the number starting at 1 rather than 0 subtract 1 for accuracy
ttlE -= 1;
//On pageload, load in the first Endorsement into variables
quote = $(xmlData).find('endorsement').eq(0).children('quote');
author =$(xmlData).find('endorsement').eq(0).children('author');
title =$(xmlData).find('endorsement').eq(0).children('title');
//Append variables to id containers
$("#quote").html(quote);
$("#author").html(author);
$("#title").html(title);
//executes the function "next" which places the next endorsement
setInterval("next()", 5000);
});
function next(){
console.log('Next Function Started');
if(nextE >= ttlE){
nextE = 0;
}
else{
nextE++;
}
console.log('nextE = ' + nextE);
quote = $(xmlData).find('endorsement').eq(nextE).children('quote');
author =$(xmlData).find('endorsement').eq(nextE).children('author');
title =$(xmlData).find('endorsement').eq(nextE).children('title');
$("#quote").html(quote);
$("#author").html(author);
$("#title").html(title);
}
</script>
这里是网站:http://privilegeofpersecution.com/wp-content/themes/privilegeofpersecution/xmltest.html
【问题讨论】: