【发布时间】:2011-02-18 11:39:06
【问题描述】:
我正在尝试以递归方式加载一堆图像,由于 13 次递归的限制,它在所有浏览器中都能完美运行,除了被上帝抛弃的 IE。
现在我可以自己解决这个问题,但我确实想遵循“最佳实践”,可以这么说,因为我还在学习 jQuery。而且我猜这里的大师可以提供有用的指导。 您建议如何解决?
我的代码sn-p:
$(文档).ready(函数(){ loadThumbs(["1.jpg","2.jpg","3.jpg","4.jpg","5.jpg","6.jpg","7.jpg","8.jpg" , "9.jpg","10.jpg","11.jpg","12.jpg","13.jpg","14.jpg","15.jpg", "16.jpg","17.jpg","18.jpg","19.jpg","20.jpg"], 0); }); 函数 loadThumbs(文件,索引){ if(index == files.length) 返回; var 文件 = 文件 [索引]; 变种图像 = 新图像(); $(图片) .load(函数(){ $("#container").append(image); loadThumbs(文件,索引+1); }) .addClass("拇指") .attr("src", 文件); }如果您在 IE 中尝试此操作(在我的情况下为 8),您将收到 Stack Overflow 错误。
谢谢!
【问题讨论】:
-
也许我只是不明白,但你如何停止递归?
-
请注意,您为什么要使用递归?一个简单的循环遍历数组中的项目就可以了。
-
该死,我的错。我忘了我删除了停止条件。在函数的开头,我执行“if(index == files.length) return;”所以停止递归不是问题。即使在所有 20 个文件加载完毕后停止,所有浏览器也能正确显示页面并且 IE 在 13 次递归后失败。
标签: jquery image internet-explorer recursion load