2016-05-04 10 views
0

ビデオにソースがない場合、ビデオと画像を置き換えるにはどうすればよいですか?ビデオをエラーのある画像に置き換えます。

<div id="gameImage"><img id="img" src=""></div> 
<div id="gameTrailer"> 
    <video autoplay loop width="960" height="540" id="video"> 
     <source src="" id="gameTrailer_window"> 
    </video> 
</div> 

映像ソースは、次のようにAJAXを経由して追加されます:

var videoSrc = data.gameTrailer; 
var video_block = $('#video'); 
video_block.load(); 
$("#video").find("#gameTrailer_window").attr("src", videoSrc) 

..butいくつかのケースでは、var videoSrcにはビデオが表示されませんことを意味し、nullを等しくなります。だから私は、ソースなしで動作します(常に利用可能なソースを持っています)の代わりに画像を表示onError -functionを考え出したが、ビデオ要素次の関数そのため、エラーを返すように見えるしません:

$("#video").error(function() { 
    $(this).hide(); 
    $("#gameImage").find("#img").attr("src", data.gameImage) 
}); 

..火はありません。それはコードで何かであるかもしれない、私は100%確実ではない。

正しい方向のどんな種類のナッジも、事前に感謝します。

varがnullでない場合は、最初の関数で状態を確認しない理由ジョン

答えて

2

代わりの

if(videoSrc!=null){ 
    $("#video").find("#gameTrailer_window").attr("src", videoSrc) 
} else { 
    $("#gameImage").find("#img").attr("src", data.gameImage); 
} 

別の関数を書くことは、ビデオSRCは他の画像srcが変更されます変更されます。

+0

私はこれが本当にうまくいきません。ありがとう、それは1つの問題を解決しましたが、何か他のものが出てきました。ビデオのsrcはコード(inspect要素)に置き換えられますが、ビデオは変更されません。ビデオは単なるホワイトフィールドです。 –