【发布时间】:2011-02-18 06:46:05
【问题描述】:
我想取消 .load() 操作,当 load() 没有在 5 秒内返回时。如果是这样,我会显示一条错误消息,例如“抱歉,没有加载图片”。
我所拥有的是……
...超时处理:
jQuery.fn.idle = function(time, postFunction){
var i = $(this);
i.queue(function(){
setTimeout(function(){
i.dequeue();
postFunction();
}, time);
});
return $(this);
};
...初始化错误信息超时:
var hasImage = false;
$('#errorMessage')
.idle(5000, function() {
if(!hasImage) {
// 1. cancel .load()
// 2. show error message
}
});
...图片加载:
$('#myImage')
.attr('src', '/url/anypath/image.png')
.load(function(){
hasImage = true;
// do something...
});
我唯一想不通的是如何取消正在运行的 load()(如果可能的话)。
编辑:
另一种方式:如何防止 .load() 方法在返回时调用它的回调函数?
【问题讨论】:
标签: jquery image timeout jquery-load