目前我正在使用youtube api iframe,我尝试在视频结束时做点什么,但是,我需要javascript中的全局变量才能继续。我的代码是这样的:
var k =0
function onYouTubeIframeAPIReady()
{
for(j=0;j<tam2;j++)
{
var nombre="player"+j;
player = new YT.Player(nombre,
{
height:'300',
width:'580',
videoId:arrayJS[j],
events: {'onStateChange': onPlayerStateChange}
});
k++;
}
}
所以我需要识别我的onPlayerStateChange函数中的每个玩家,也就是说,获取我的数组arrayJS和arrayT的索引来获取生成完成事件的特定视频的id和title,我试着做以下,但是当我运行console.log时,它表示该变量未定义:
function onPlayerStateChange(event)
{
if (event.data == YT.PlayerState.ENDED)
{
console.log(k);
$.ajax
({
async:true,
type: "POST",
url:'v.php',
data:
{
idvideo:arrayJS[k],
titlevideo:arrayT[k]
},
success:function envio(deVuelta)
{
alert(deVuelta);
},
timeout:30000,
error:function()
{
alert("Ocurrio un error");
}
});
}
}
答案 0 :(得分:1)
您试试bind吗?
function onYouTubeIframeAPIReady()
{
for(j=0;j<tam2;j++)
{
var nombre="player"+j;
player = new YT.Player(nombre,
{
height:'300',
width:'580',
videoId:arrayJS[j],
events: {'onStateChange': onPlayerStateChange.bind(null, arrayJS, j)}
});
k++;
}
}
function onPlayerStateChange(ary, idx, event)
{
if (event.data == YT.PlayerState.ENDED)
{
console.log(k);
$.ajax
({
async:true,
type: "POST",
url:'v.php',
data:
{
idvideo:arrayJS[k],
titlevideo:arrayT[k]
},
success:function envio(deVuelta)
{
alert(deVuelta);
},
timeout:30000,
error:function()
{
alert("Ocurrio un error");
}
});
}
}