在 JavaScript 中从 img.load() 返回 img
我有一个 for 循环:
for(var i = 0; i < r.length; i++){
var img=loadImage(r.id);
$gallery.append(img);
}
和加载图像函数:
function loadImage(id){
var $url='url/'+id;
var img = new Image();
$(img).load(function(){
return this;
})
.attr({'src':$url,'id':id});
}
在上面的函数中,我想返回 img,以便我可以在 for 循环中使用它,但这似乎不起作用,我没有显示图像。我知道我可以在 load 中使用 $gallery.append(this) ,效果很好,但我需要将上述方法用于其他目的。那么有什么建议我可以用这种方式做到这一点吗?谢谢。
I have a for loop:
for(var i = 0; i < r.length; i++){
var img=loadImage(r.id);
$gallery.append(img);
}
and loading image function:
function loadImage(id){
var $url='url/'+id;
var img = new Image();
$(img).load(function(){
return this;
})
.attr({'src':$url,'id':id});
}
in the function above, I want to return the img so I can use it in the for loop, but this does not seem to work, I don't get image to show up. I know I can use $gallery.append(this) inside load which works well, but I need to use the above method for other purposes. so any suggestion that I can do it in this way? thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 jquery 的
load
事件加载图像可能有点错误(取自 jquery文档) :在您的情况下,我将使用两种不同方法之一:
通过回调,您可以在异步任务完成时执行某些功能:
事件,您可以拥有更多功能。 ..
您可以创建并触发自己的事件,并根据需要绑定任意数量的事件处理程序。
使用个人事件的示例:
Using jquery's
load
event to load images can be a bit buggy (taken from the jquery documentation) :In your case, I'd use one of two different approaches:
With callbacks, you have the power to execute some functionality when an asynchronous task is done :
With events, you have even more power...
You can create and trigger your own events and bind as many eventHandlers as you want.
An example of using personal events:
如果您想要 Element:
如果您想要 jQuery 对象:
If you want the Element:
If you want the jQuery object: