jQuery 使用 .load 同步加载图像
function loadImage(url) {
var retval=0;
var img = new Image();
$(img).attr('src', url)
.appendTo("#test")
.load( function() {
$(this).hide().fadeIn();
retval=true;
})
.error( function() {
$(this).remove();
retval=false;
});
return retval;
}
这个函数总是返回 0 :(
我想我不能覆盖全局变量(retval),因为 .load 函数的异步行为。有解决方法的想法吗?我希望该函数还表明是否给定远程图像是否存在。
function loadImage(url) {
var retval=0;
var img = new Image();
$(img).attr('src', url)
.appendTo("#test")
.load( function() {
$(this).hide().fadeIn();
retval=true;
})
.error( function() {
$(this).remove();
retval=false;
});
return retval;
}
This function always returns 0 :(
I guess that I can't overwrite the global variable (retval) because of the asynchronously behavoir of the .load function. Any ideas for a workaround? I namely would like that the function also indicates if the given remote image exist or not.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试这个:
在完成加载和附加本身之后,您正在绑定事件处理程序(加载和错误)。
编辑:删除了从事件返回值的建议(当然不起作用)
try this:
You're binding event handlers (load and error) after you've done the loading and appending itself.
EDIT: removed suggestion to return the value from the events (won't work ofcourse)