上一次完成后,立即加载一个链接列表
load list of links one at a time as soon as previous finishes
类似于使用jquery一次显示iframe中的链接列表,但不使用setTimeout函数,因为我宁愿在上一个文档加载完成后开始下一次获取。
我是javascript的新手,jquery更是如此,但这是我的第一枪:
links = ["http://example1.com","http://example2.com","http://example3.com"]
function loadNext(x){
if ( x < links.length ){
$('#target').load('links[x]');
$('#target').ready(function(){
x++;
loadNext(x);
});
};
};
$(document).ready(function(){
$('.loader').click(function(){
loadNext(0);
});
});
</script>
<div id="bd" role="main">
<ul>
<li><a href="#" class="loader">Start loading</a></li>
</ul>
<div id="target"></div>
</div>
我真的不明白为什么这不起作用。至少这个逻辑看起来是正确的。单击fire,传入一个索引为0的函数,然后在id="target"中加载该数组值(完整url),并在该目标准备好后再次运行该函数。点击似乎甚至不会加载第一个目标,更不用说迭代了(我本以为它会重定向第一次点击,直到我找到代理…)
假设您在代码中的某个地方定义了links
。尝试使用load
方法的回调功能在上一次加载完成后调用loadNext
。
function loadNext(x){
if ( x < links.length ){
$('#target').load(links[x], function(){
loadNext(x++);
});
}
}
使用以上代码,每次加载都将覆盖#target
中以前的内容。如果你想保留它,那就用这个。
function loadNext(x){
if ( x < links.length ){
$('#target').append($('<div />').load(links[x], function(){
loadNext(x++);
})
);
}
}
更新:
如果您试图使用load
访问外部URL,那么由于跨域访问限制,它将不起作用。但是有一些方法可以使用JSONP、YQL等从外部网站获取内容。
看看这个链接http://icant.co.uk/articles/crossdomain-ajax-with-jquery/using-yql.html
以下改进应该会有所帮助:
$('#target').append($("<div>").load(links[x], function() {
loadNext(x+1);
});
load()
接受回调函数作为参数,您应该使用它'links[x]'
被视为URL,因此删除单引号(假设links
存在)load()
覆盖#target
的内容,因此与append()
结合
好吧,您的脚本只是不是有效的代码。如果CCD_ 12被认为是一个数组,那么CCD_。load('links[x]')
不正确。未声明links
。您正在函数中调用同一个函数,并且您有许多意外的;
。ready()
并不是你想象的那样。恐怕你得重新考虑这整件事了。
相关文章:
- 从javascript创建一个列表
- 使用jquery从列表项中移除类,并将一个类添加到另一个列表项中
- 为数组Jquery/Javascript创建一个列表函数
- JavaScript,如何从一个列表中获取选定的值,同时在另一个列表中进行更改
- 如何在选择另一个列表框值时清除列表框值
- Angular2从数组创建一个列表
- 为什么此脚本仅应用于此列表中的一个列表项
- Jquery幻灯片中的列表,连接第一个和最后一个列表元素以创建旋转木马
- 如何从有序列表中选择一个列表元素
- 雄辩的Javascript:练习:一个列表
- 将单元格的高度从一个表列表指定到另一个列表
- AngularJS图像在点击时应该显示一个列表
- 从 AJAX 在 JavaScript 中创建一个列表
- 如何使用列表框的一个值来设置另一个列表框的值
- 在两个或多个 UL 列表之间切换,如果单击一个列表,则其他列表会自动以初始状态返回,就像从未单击过一样
- Jquery UI 可排序和可删除 - 无法将项目从一个列表克隆到另一个列表
- 使用 JQuery 将元素从一个列表移动到另一个列表
- 我有一个列表显示 1、2、3 个数字,我可以将它们转换为乌尔都语吗?
- 一个列表的Mailchimp多个订阅表单
- jQuery - 一个列表中的每个列表在另一个列表之前