나는 비디오 작업을하고있다. 거기에는 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;
});
아직 대답이 없지만 두 계산에서 인라인 인 $ (this) .parent(). attr ('id')를 포함하여 계산 전에 모든 속성 읽기를 그룹화합니다. 현재 두 계산 모두 jQuery가 DOM을 따라 가면 속도가 느려집니다. ID를 한 번 읽고 필요에 따라 사용하십시오. 또한 전체 마크 업을 제공하지 않았기 때문에이를 디버깅하는 것이 불가능합니다. 우리는 $ (this) .parent(). attr ('id')가 어떻게 생겼는지 추측하고 있습니다. 이렇게하면 replace-substring 문을 디버깅하기가 어렵습니다. – BenSwayne