页面内的 YouTube 播放列表包含 x 数量的视频
YouTube Playlist inside a Page with x-amount of videos
我想显示一个 YouTube 播放列表,其中 main/current 选定的视频位于顶部,该播放列表的 x 数量的视频位于其下方。
遗憾的是,它似乎在 $.getJSON 之前的函数 loadVids 中停止,但我似乎无法在此处找到错误。
(我在 options being opions 处打错了,但这不是这里的问题)
HTML:
<div class="vidcontainer">
<section id="video"></section>
<main class="video-playlist"></main>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
JS:
$(document).ready(function () {
var key = 'myKey';
var playlistId = 'myPlaylist';
var URL = 'https://www.googleapis.com/youtube/v3/playlistItems';
var options = {
part: 'snippet',
key: key,
maxResults: 20,
playlistId: playlistId
};
loadVids();
function loadVids() {
$.getJSON(URL, options, function (data) {
var id = data.items[0].snippet.resourceId.videoId;
mainVid(id);
resultsLoop(data);
});
}
function mainVid(id) {
$('#video').html(`
<div class="responsive-video">
<iframe src="https://www.youtube.com/embed/${id}" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
`);
}
function resultsLoop(data) {
$.each(data.items, function (i, item) {
var thumb = item.snippet.thumbnails.medium.url;
var title = item.snippet.title;
var desc = item.snippet.description.substring(0, 100);
var vid = item.snippet.resourceId.videoId;
$('main.video-playlist').append(`
<varticle class="item" data-key="${vid}">
<img src="${thumb}" alt="" class="vidthumb">
<div class="details">
<h4 style="float:left;font-size: 20px;font-family: sauna-boldregular;margin-bottom: 16px;">${title}</h4>
<p style="float:left;">${desc}…</p>
</div>
</varticle>
`);
});
}
// CLICK EVENT
$('main.video-playlist').on('click', 'varticle', function () {
var id = $(this).attr('data-key');
mainVid(id);
document.getElementById('video').scrollIntoView({
behavior: 'smooth'
});
});
});
当下载并包含 jQuery 而不是从外部源使用它时,问题就消失了。
从这里获取并确保获得压缩的生产版本:https://jquery.com/download/
我想显示一个 YouTube 播放列表,其中 main/current 选定的视频位于顶部,该播放列表的 x 数量的视频位于其下方。
遗憾的是,它似乎在 $.getJSON 之前的函数 loadVids 中停止,但我似乎无法在此处找到错误。
(我在 options being opions 处打错了,但这不是这里的问题)
HTML:
<div class="vidcontainer">
<section id="video"></section>
<main class="video-playlist"></main>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
JS:
$(document).ready(function () {
var key = 'myKey';
var playlistId = 'myPlaylist';
var URL = 'https://www.googleapis.com/youtube/v3/playlistItems';
var options = {
part: 'snippet',
key: key,
maxResults: 20,
playlistId: playlistId
};
loadVids();
function loadVids() {
$.getJSON(URL, options, function (data) {
var id = data.items[0].snippet.resourceId.videoId;
mainVid(id);
resultsLoop(data);
});
}
function mainVid(id) {
$('#video').html(`
<div class="responsive-video">
<iframe src="https://www.youtube.com/embed/${id}" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
`);
}
function resultsLoop(data) {
$.each(data.items, function (i, item) {
var thumb = item.snippet.thumbnails.medium.url;
var title = item.snippet.title;
var desc = item.snippet.description.substring(0, 100);
var vid = item.snippet.resourceId.videoId;
$('main.video-playlist').append(`
<varticle class="item" data-key="${vid}">
<img src="${thumb}" alt="" class="vidthumb">
<div class="details">
<h4 style="float:left;font-size: 20px;font-family: sauna-boldregular;margin-bottom: 16px;">${title}</h4>
<p style="float:left;">${desc}…</p>
</div>
</varticle>
`);
});
}
// CLICK EVENT
$('main.video-playlist').on('click', 'varticle', function () {
var id = $(this).attr('data-key');
mainVid(id);
document.getElementById('video').scrollIntoView({
behavior: 'smooth'
});
});
});
当下载并包含 jQuery 而不是从外部源使用它时,问题就消失了。 从这里获取并确保获得压缩的生产版本:https://jquery.com/download/