【发布时间】:2012-11-04 20:53:46
【问题描述】:
应该是一个简单的 while 循环,附加一个图像并增加计数,直到 .error() 因为图像不存在而被触发。
问题是错误事件永远不会触发。目录中有三个图像,但页面只是无限加载,直到选项卡崩溃。在 html 中的图像上调用 .error() 有效,只有当我附加图像时才调用错误。
代码如下:
jQuery(document).ready(function($) {
var images = 'load';
var i = 1;
while(images == 'load') {
$('.images').append('<img src="window_0' + i + '.jpg" />')
.error(function() {
images = 'finished';
});
i++;
}
});
如果我使用 while(i
这曾经可以通过 ajax 调用实现,但在我的 jQuery 版本(1.7.1
【问题讨论】:
-
您不能使用服务器代码获取文件计数吗?这可以作为变量传递给页面并与之对抗
-
您无法使用此解决方案解决该问题,因为调用错误回调是异步的。您的无限循环阻止浏览器处理任何其他回调,因此永远不会发生。此外,这种方法会浪费传输并且高度不可预测。
-
不幸的是,在这种情况下,服务器端代码不是一个选项(长篇大论)。关键是,循环不应该是无限的,因为它应该在附加第四个(不存在的)图像时结束,导致 .error() 触发。
-
设法最终解决了这个问题,而不是使用本机javascript:stackoverflow.com/questions/11144261/…
标签: javascript jquery error-handling while-loop