在我的文档就绪功能中,我创建了一个对象videoList,当我检查并逐步遍历代码时,该对象实际上确实存在了很短的时间。但是,在其创建后不久,它就被返回,而不是由另一个函数定义。我的代码如下:
$(document).ready(function(){
var videoList = new Object();
videoList.videoPlaylist = [];
videoList.addNew = function(data){
$('.videoPlayer iframe').first().remove();
}
videoList.removeOld = function(){
}
});
它位于一个名为video.js的文件中。在另一个文件buffer.js中,该文件在video.js之后加载,但不包含在ready函数中:
function loadTracks(playlistID){
if(GoogleAuth.currentUser.get().hasGrantedScopes(SCOPE)){
var request = gapi.client.request({
'method':'GET',
'path':'/youtube/v3/playlistItems',
'params':{
'playlistId':playlistID,
'part':'snippet',
'maxResults':'15',
'key':'AIzaSyD0OY6xhl9gP9CmPXvU-rN-purRDaTrip8'
}
});
request.execute(function(response){
$('.playlistContainer').html('');
response.items.forEach(function(element){
$('.playlistContainer').append('<div class="songTrack"><img src="'+element.snippet.thumbnails.medium.url+'"/><span data-videoId = "'+element.snippet.resourceId.videoId+'">'+element.snippet.title+'</span></div>');
});
$('.songTrack').click(function(){
var data = $(this).data('videoid');
videoList.addNew(data);
console.log('I was clicked');
});
console.log(response);
});
}
}
要点是,它将视频列表添加到容器中,每个视频都应可单击。videoList对象最终将保存大量视频,而addNew和removeOld将处理数组。我仍在学习对象,但是从我收集的信息来看,videoList对象是否应该在全局范围内并且可以通过loadTracks()
函数访问?
我认为问题在于您是在jQuery函数范围内声明变量,而不是在文档准备就绪之外全局声明变量。尝试类似的方法:
var videoList = new Object();
$(document).ready(function(){
...
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句