Javascript 解析XML提要以显示Nivo滑块的图像
我正在和我的老板一起工作,试图制作一个幻灯片,让他很容易更新。XML似乎是完美的实现。我所做的是创建一个XML文件,jQuery将其解析为#slider div。然后Nivo将拾取这些图像并显示它们。但是,似乎在实际解析完成之前加载了NivoSlider,因此Nivo不会检测到这些图像(即使使用Firebug,您可以知道它们在那里)。有没有办法延迟加载NivoSlider,直到解析完此信息?在我开始修复这个bug之前,Nivo有50%的时间会检测到图像,而另一半时间不会。。。你可以看到这里发生了什么: XML:Javascript 解析XML提要以显示Nivo滑块的图像,javascript,jquery,xml,slider,nivo-slider,Javascript,Jquery,Xml,Slider,Nivo Slider,我正在和我的老板一起工作,试图制作一个幻灯片,让他很容易更新。XML似乎是完美的实现。我所做的是创建一个XML文件,jQuery将其解析为#slider div。然后Nivo将拾取这些图像并显示它们。但是,似乎在实际解析完成之前加载了NivoSlider,因此Nivo不会检测到这些图像(即使使用Firebug,您可以知道它们在那里)。有没有办法延迟加载NivoSlider,直到解析完此信息?在我开始修复这个bug之前,Nivo有50%的时间会检测到图像,而另一半时间不会。。。你可以看到这里发生了
符合事实的
计算机科学再次获胜
计算机科学
图片/up.jpg
http://www.google.com
JavaScript:
// XML Parser
function parseXML() {
// Get XML File
$.get('example.xml', function(xml){
// Loop Through Each Entry in XML
$(xml).find('entry').each(function(){
// Declare Variables
var entry = $(this);
var type = entry.find('slider').text();
var title = entry.find('title').text();
var department = entry.find('department').text();
var image = entry.find('image').text();
var link = entry.find('link').text();
// Sort Through Item Types
if(type == 'true'){
var slider = '<a href="' + link + '"><img src="' + image + '" title="' + title + '" alt="' + department + '" /></a>';
}
if(type == 'false'){
var archive = '<h2>' + department + '</h2><p>' + title + '</p><a href="' + link + '">Read More</a>';
}
// Append Data
$("#archive").append(archive);
$("#slider").prepend(slider);
});
});
}
$.when( parseXML() ).done(function(){
$('#slider').nivoSlider();
});
//XML解析器
函数parseXML(){
//获取XML文件
$.get('example.xml',函数(xml){
//循环遍历XML中的每个条目
$(xml).find('entry').each(function(){
//声明变量
var条目=$(此项);
var type=entry.find('slider').text();
var title=entry.find('title').text();
var department=entry.find('department').text();
var image=entry.find('image').text();
var link=entry.find('link').text();
//按项目类型排序
如果(类型=='true'){
var滑块=“”;
}
如果(类型=='false'){
var存档=''+部门+''+标题+'';
}
//附加数据
$(“#档案”)。追加(档案);
$(“#滑块”)。前置(滑块);
});
});
}
$.when(parseXML()).done(function()函数){
$(“#滑块”).nivoSlider();
});
对于这样的任务,您更愿意使用JSON:a)文件更小b)JSON JavaScript解析器更快c)该用例的示例更多。尽管如此,我的经验是,JSON比XML更难阅读。所以这个决定也是基于语法的。。。。但即使使用JSON,如果NivoSlider仍然首先加载,我仍然会遇到同样的问题。
// XML Parser
function parseXML() {
// Get XML File
$.get('example.xml', function(xml){
// Loop Through Each Entry in XML
$(xml).find('entry').each(function(){
// Declare Variables
var entry = $(this);
var type = entry.find('slider').text();
var title = entry.find('title').text();
var department = entry.find('department').text();
var image = entry.find('image').text();
var link = entry.find('link').text();
// Sort Through Item Types
if(type == 'true'){
var slider = '<a href="' + link + '"><img src="' + image + '" title="' + title + '" alt="' + department + '" /></a>';
}
if(type == 'false'){
var archive = '<h2>' + department + '</h2><p>' + title + '</p><a href="' + link + '">Read More</a>';
}
// Append Data
$("#archive").append(archive);
$("#slider").prepend(slider);
});
});
}
$.when( parseXML() ).done(function(){
$('#slider').nivoSlider();
});