【发布时间】:2011-01-16 11:21:08
【问题描述】:
在之前关于 Recursive jQuery load 命令的帖子中,建议的代码可以工作,但有一些限制。这是已经提出的代码和the link:
function loadTree($element) {
$element.each(function(){
this.load('url', function(){
loadTree(this.find('.children'));
});
});
}
loadTree($('#content'));
上面代码的问题是,如果加载不成功,递归循环就会终止。在我的情况下,我一个接一个地加载图像,并通过 AJAX 调用从数据库中获取图像 URL。如果由于某种原因图像 URL 不正确,递归将停止,我不希望这件事发生。无论如何都必须加载其余图像,因为如果我有 100 个图像路径,除了第一个之外,所有这些路径都有效,那么所有 100 个都不会显示。
我还有另一个相关的问题。基本上我是通过 ajax 检索 7 个图像 url,然后我在一个字符串中形成 7 个 html 图像标签,然后只用该字符串调用一次加载事件:所有这些都是为了减少浏览器请求的数量。因此,我希望加载所有 7 个图像后触发加载事件回调。但是,当我尝试此操作时,每个图像的加载事件回调都会触发。关于如何在所有项目已加载(无论是否成功加载;尝试加载)时触发回调的任何想法。
谢谢
【问题讨论】:
-
只是一个想法,但将图像 URL 树从单个调用返回到后端,然后在客户端代码中逐步执行不是更好吗?
-
我不只是获取 URL,我还获取 URL、宽度和高度、标题等……而让整棵树说 1000 张图像将无法达到目的。
标签: jquery events recursion load