我想先改变img src然后完成其他的.像这样的东西 -
$('#bgImage').attr('src','images/'+bgImage, function() {
alert('inside');
});
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
Ric*_*uen 26
或许另一行代码?
$('#bgImage').attr('src','images/'+bgImage),
$('#searchPin').css("top",y+"px");
$('#searchPin').css("left",x+"px");
Run Code Online (Sandbox Code Playgroud)
如果您想等待图像加载,您可能正在寻找事件load:
$('#bgImage').load(function() {
$('#searchPin').css("top",y+"px");
$('#searchPin').css("left",x+"px");
}).attr('src','images/'+bgImage);
Run Code Online (Sandbox Code Playgroud)
请注意,load(...)事件处理程序是在使用之前更改src属性之前创建的attr- 如果图像已被缓存.
如果您不止一次这样做,您可能也想要研究一下unbind.
当您更改图像的源时,它将被加载,并在完成后触发onload事件.所以:
$('#bgImage').attr('src','images/'+bgImage).load(function() {
$('#searchPin').css("top",y+"px");
$('#searchPin').css("left",x+"px");
});
Run Code Online (Sandbox Code Playgroud)
.attr立即执行。您实际需要的是等待图像加载完成,然后再执行一些操作。
var $img = $("#bgImage");
$img.load(function(){
// image is done loading, do something
alert("worky (not cached)")
});
$img.attr('src','images/' + bgImage);
Run Code Online (Sandbox Code Playgroud)