나는 내 웹 사이트에 YouTube 동영상의 목록을 가지고 있고이 같은 각 목록 항목 모습입니다 : 사용자가이 비디오 항목, 패널 방울 중 하나를 클릭하면자바 스크립트 유튜브 API -로드 플레이어
<div class="video_item" id="<YouTubeVideoID>">
// video thumbnail and information
</div>
아래 API를로드하고 패널의 슬라이드 액션 완료되면, 비디오 플레이어를 표시해야합니다 : 문제는
$(document).ready(function(e) {
$('.video_item').live('click', function() {
var vid_id = $(this).attr('id');
if (vid_id) {
$("html").animate({ scrollTop: $('#main').offset().top-20 }, 1000, function() {
setTimeout(function() {
$('.video_drop_panel_wrap').slideDown('slow', function() {
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('youtube_player', {
height: '371',
width: '570',
videoId: vid_id,
events: {
'onReady': onPlayerReady
}
});
}
function onPlayerReady(event) {
event.target.playVideo();
}
});
},1000);
});
}
});
});
, 그것은 플레이어를 표시하지 않습니다를 내가받지 않습니다 내 JS 개발자 콘솔의 모든 오류. 필자는 API와 플레이어를 패널 아래로 슬라이드하지 않고 테스트했으며 작동합니다. 그것은 DOM 문제 또는 그 이외의 경우 나는 잘 모르겠습니다. 아무도 내가 잘못한 것을 발견 할 수 있다면, 나는 때리는 것을 고맙게 여길 것이다. 오.
내가 API가 라인'VAR 태그 = document.createElement ('스크립트')에서 호출되는 줄 알았는데,'은'에서 onYouTubeIframeAPIReady()를 호출 '함수. 확실히 그것은 함수와 API 작성자가 모두'document.ready'에 있기 때문에 전역 범위에 있습니다. – ShadowStorm
다른 함수와 마찬가지로,'$ (document) .ready (function() {...})'내부에서 정의 된 변수는 함수 내에 만 존재합니다. – Crazometer
조금 놀고 나니, 이제 당신이 나에게 설명하려고하는 것을 이해합니다. TBH,이 API 메소드가 내 상황에 가장 적합한 것인지 잘 모르겠습니다. 방금 SWF 버전을 사용하고 훨씬 잘 작동합니다. 양해 해 주셔서 감사 드리며 올바른 대답을 수락합니다. – ShadowStorm