Javascript 等待加载后映像

Javascript 等待加载后映像,javascript,jquery,html,image,Javascript,Jquery,Html,Image,我在javascript中得到了这一行: $("#botbg").css("background-image", "url(/png/" + epage + ".jpg)"); “botbg”是一个div。 是否可以将回调附加到此函数?我只是想让其他操作等到这一切完成 这些都没有成功: $("#botbg").css("background-image", "url(/png/" + epage + ".jpg)").load(function(){ //... }); $("#botbg"

我在javascript中得到了这一行:

$("#botbg").css("background-image", "url(/png/" + epage + ".jpg)");
“botbg”是一个div。 是否可以将回调附加到此函数?我只是想让其他操作等到这一切完成

这些都没有成功:

$("#botbg").css("background-image", "url(/png/" + epage + ".jpg)").load(function(){
//...
});

$("#botbg").css("background-image", "url(/png/" + epage + ".jpg)").one("load", function(){
//...
});

$("#botbg").css("background-image", "url(/png/" + epage + ".jpg)").ready(function(){
//...
});
不,你不能

您可以做的最好的事情是在temp div中加载图像,然后在调用load回调时设置背景图像,如下所示:

<div id="tmp"><img src="/png/yourimage.jpg" /></div>

$("#tmp").load(function(){
    $("#botbg").css("background-image", "url(/png/yourimage.jpg)");
});

$(“#tmp”).load(函数(){
$(“#botbg”).css(“背景图像”,“url(/png/yourmage.jpg)”);
});
编辑

调用.load()函数的新方法


$(“#tmp”)。在(“加载”,函数()上){
$(“#botbg”).css(“背景图像”,“url(/png/yourmage.jpg)”);
});

在jQuery中,回调函数仅应用于
异步任务,由于
css
函数是一个
同步的
函数,因此没有回调,因此在
.css()
函数之后放置的每一行代码都将立即被调用

但是,您可以跟踪背景图像的负载,但即使这样做,也不能保证在图像显示后执行代码,特别是在大图像中,浏览器需要一些时间来渲染图像。要跟踪图像是否已加载,可以执行以下操作:

$img = $('<img src="/png/'+epage+'.jpg" id="myImg"/>');//now it will work
$img.bind('load',function(){
    $("#botbg").css("background-image", "url(/png/" + epage + ".jpg)");
});
$img=$('')//现在它可以工作了
$img.bind('load',function(){
$(“#botbg”).css(“背景图像”,“url(/png/“+epage+”.jpg)”);
});
这是一个函数

我希望这有帮助。干杯

试试看

var img = new Image();
img.src = url;
img.onload = function( ) {
    $("#botbg").css("background-image", "url(" + url + ")");
}

虽然此解决方案可能有效,但不建议使用此解决方案,因为它已被弃用,并且在跨浏览器时无法稳定地工作。好的,我不知道,我已根据此帖子更新了我的答案。您不只是测试div tmp是否已加载,而不是测试img是否已加载吗?是的,我正在我的网站上使用此代码,但是你的解决方案比我的要好=>+1幸运的是,它只解决了一半的问题。将它与
.on('load')
一起使用不会使事件与图像一起使用更加可靠。在文档页面上查看加载事件与图像一起使用时的注意事项:我在回调后发出了警报。。它没有发射:对不起,我会编辑它使其正确。Dumb me忘记了一个重要的细节“function(){”后的警报不会触发:S
var img = new Image();
img.src = url;
img.onload = function( ) {
    $("#botbg").css("background-image", "url(" + url + ")");
}