私はビデオのリスト作業をしています。そこには、3つの異なるIDを持つ3つのリンクがあります。ユーザーがリンクをクリックすると、ビデオとビデオのポスターが変更されなければなりません。私のjqueryコードを使用している間、ビデオは変化していますが、attr "ポスター"はまったく変化しません...何らかの理由がありますか?これは私が使用しています何私のコード...jqueryを使用してビデオポスターを変更するにはどうすればよいですか?
ビデオHTMLコードです:
<video width="600" height="360" id="player2" poster="videos/video1/video1.jpg" controls="controls" preload="none">
<!-- MP4 source must come first for iOS -->
<source type="video/mp4" src="videos/video1/video1.mp4" />
<!-- WebM for Firefox 4 and Opera -->
<source type="video/webm" src="videos/video1/video1.webm" />
<!-- OGG for Firefox 3 -->
<source type="video/ogg" src="videos/video1/video1.ogv" />
<!-- Fallback flash player for no-HTML5 browsers with JavaScript turned off -->
<object width="640" height="360" type="application/x-shockwave-flash" data="videos/flashmediaelement.swf">
<param name="movie" value="videos/flashmediaelement.swf" />
<param name="flashvars" value="controls=true&file=videos/video1/video1.mp4" />
<!-- Image fall back for non-HTML5 browser with JavaScript turned off and no Flash player installed -->
<img src="videos/video1/video1.jpg" width="640" height="360" alt="Here we are"
title="No video playback capabilities" />
</object>
</video>
私のjqueryのコード:
$('div.video-box-area img').click(function(){
var nowSrc = $('video').attr('src');
var change = nowSrc.replace(nowSrc.substr(12,1),$(this).parent().attr('id').substr(length-1));
var poster = $('video').attr("poster");
var posterChange = poster.replace(poster.substr(12,1),$(this).parent().attr('id').substr(length-1));
$('video').attr("poster",posterChange);
$('video').attr('src',change);
return false;
});
私はあなたの2つの計算でインラインである$(this).parent()。attr( 'id')を含む計算の前に、すべての属性の読み込みをグループ化します。今の両方の計算では、jQueryがDOMを立ち上げる必要があり、遅くなります。 IDを一度読んでから、必要に応じて使用してください。また、完全なマークアップを提供していないので、これをデバッグするのは不可能です。私たちは$(this).parent()。attr( 'id')がどのように見えるかを推測しています。これにより、substring-substringステートメントをデバッグするのが難しくなります。 – BenSwayne