您好, 我无法将Clicked Value传递给返回函数。
function getArtistId() {
//return 'l-gQLqv9f4o'; if i uncomment this videos will work like charm, but instead of static i need dynamic onclick of the element getting the value and passing.
return 'ytData1';
}
JS:
$(document).ready(function() {
var cVid, ytData1
$('.new li #c-vid').on('click', function(e) {
$(this).each(function(i, obj) {
e.preventDefault();
cVid = document.getElementById('c-vid');
ytData1 = $(this).attr('data-yt');
console.log(ytData1)
console.log("ready!");
loadPlayer();
})
});
});
function getArtistId() {
return 'l-gQLqv9f4o';
//return 'ytData1';
}
function loadPlayer() {
if (typeof(YT) == 'undefined' || typeof(YT.Player) == 'undefined') {
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
window.onYouTubePlayerAPIReady = function() {
onYouTubePlayer();
};
}
}
var player;
function onYouTubePlayer() {
player = new YT.Player('player', {
height: '490',
width: '880',
videoId: getArtistId(),
playerVars: {
controls: 1,
showinfo: 0,
rel: 0,
showsearch: 0,
iv_load_policy: 3
},
events: {
'onStateChange': onPlayerStateChange,
'onError': catchError
}
});
}
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
// setTimeout(stopVideo, 6000);
done = true;
} else if (event.data == YT.PlayerState.ENDED) {
location.reload();
}
}
function onPlayerReady(event) {
//if(typeof(SONG.getArtistId()) == undefined)
//{
// console.log("undefineeeed");
//}
//event.target.playVideo();
}
function catchError(event) {
if (event.data == 100) console.log("De video bestaat niet meer");
}
function stopVideo() {
player.stopVideo();
}
因为我无法将Clicked Value传递给返回功能。
很难在这段代码中找到问题,请帮帮我....
答案 0 :(得分:1)
一个简单的解决方案是使用window.variable
$('.new li #c-vid').on('click', function(e) {
$(this).each(function(i, obj) {
e.preventDefault();
cVid = document.getElementById('c-vid');
window.artist_id = $(this).attr('data-yt');
loadPlayer();
})
});
然后只需更新getArtistId
功能
function getArtistId() {
return window.artist_id;
}