我有一個網絡攝像頭,每隔幾秒就會覆蓋「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