我的网站上有一个 YouTube 视频列表,每个列表项如下所示:
<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 问题还是其他问题。如果有人能发现我做错了什么,我会很感激一巴掌……哦,告诉我哪里错了。