Ive создал функцию для приостановки видео с YouTube. Когда я вызываю функцию сразу после ее определения, она работает нормально.Вызов функции внутри функции, определяемой глобально?
Однако как я могу назвать эту функцию паузы из других функций? Как onYouTubeIframeAPIReady установлен в окне, делает ли это глобальной функцией? Итак, это должно позволить мне вызвать функцию паузы?
window.onYouTubeIframeAPIReady = function() {
$youtubeVideos.each(function() {
var player = new window.YT.Player(this.id, {
events: {
onReady: function (e) {
var state = e.target.getPlayerState();
if (state === window.YT.PlayerState.BUFFERING || state === window.YT.PlayerState.PLAYING) {
$element.addClass('video-playing');
activePlayer = player;
}
},
onStateChange: function (e) {
if (e.data === window.YT.PlayerState.BUFFERING || e.data === window.YT.PlayerState.PLAYING) {
$element.addClass('video-playing');
activePlayer = player;
} else {
$element.removeClass('video-playing');
activePlayer = null;
}
}
}
});
// Video pause function
function pauseTheVid() {
player.pauseVideo();
}
// This works
$('#trigger').click(function() {
pauseTheVid();
});
});
};
// Some other function that is nested somewhere else in my file.
// This doesnt work:
$('#trigger2').click(function() {
window.onYouTubeIframeAPIReady().pauseTheVid();
});
Я думаю, вы могли бы меня не поняли. Функция щелчка # триггера уже работает. Что мне нужно сделать, так это вызвать функцию паузы из совершенно разных мест в моих файлах, которые могут быть вложены в совершенно разные функции. – Evans
Да. см. последний обновленный пример. Если в совершенно другом файле вы просто создаете объект и вызываете нужную функцию. Пример также включает вызов его из той же области объекта. –
IM, рассматривая это, но FYI, что ссылка JSFiddle не делает ничего. – Evans