我有一个网络摄像头,每隔几秒就会覆盖“pic.jpg”。我遇到的问题有时候我的代码会在网络摄像机覆盖旧图像的确切时间内执行,导致图像损坏。然后,当功能再次运行(摄像头完成上传图像后),一切正常,图像显示。所以我正在试图阻止从此不断出现的破碎图像。我是新来的JavaScript/jQuery的,所以这可能是错在很多层面:Jquery - 只有在成功更新图像源后才能运行函数
<style type="text/css">
#pictest {display:none}
</style>
function updateCams(){
var camurl = "/pic.jpg?"+new Date().getTime();
$("#pictest").attr("src", camurl);
$("#pictest").error(function(){
/* image was being written. Restart the function and try again */
updateCams;
})
/* I want a success/valid type function to go here and update the visible image only on success*/
$("#pictest").valid(function(){
$("#pic").attr("src", camurl);
})
};
setInterval("updateCams()", 2000);
<img src="pic.jpg" width="640" height="480" id="pic" alt="Loading..." />
<img src="pic.jpg" id="pictest" />
无论如何,“有效”功能不起作用。我试过有效/验证/成功,甚至是一个if/else,但只有.error才正确。
你见过这个[答](http://stackoverflow.com/a/9589845/1408356)? – Scrimothy
使用load事件,不要设置'src',直到绑定了'.error'和'.load'之后 –
不知道我得到了这个,但是你试过这个 - > [FIDDLE](http:/ /jsfiddle.net/hXKNJ/)???而且不要在你的时间间隔! – adeneo