我想先改变img src然后完成其他的。像这样的东西 -
$('#bgImage').attr('src','images/'+bgImage, function() {
alert('inside');
});
我将如何做到这一点?
答案 0 :(得分:25)
也许是另一行代码?
$('#bgImage').attr('src','images/'+bgImage),
$('#searchPin').css("top",y+"px");
$('#searchPin').css("left",x+"px");
如果您想等待加载图片,您可能正在寻找活动load
:
$('#bgImage').load(function() {
$('#searchPin').css("top",y+"px");
$('#searchPin').css("left",x+"px");
}).attr('src','images/'+bgImage);
请注意,load(...)
事件处理程序是在使用src
更改attr
属性之前创建的 - 如果图像已被缓存。
如果您不止一次这样做,您可能也想查看unbind
。
答案 1 :(得分:9)
当您更改图像的源时,它将被加载,并在完成后触发onload事件。所以:
$('#bgImage').attr('src','images/'+bgImage).load(function() {
$('#searchPin').css("top",y+"px");
$('#searchPin').css("left",x+"px");
});
答案 2 :(得分:6)
.attr
立即执行。你实际需要的更多的是等到图像完成加载,然后做一些事情。
var $img = $("#bgImage");
$img.load(function(){
// image is done loading, do something
alert("worky (not cached)")
});
$img.attr('src','images/' + bgImage);