Переменная Anythingslider и Youtube API

99
4

Я пытаюсь связать Youtube API с jQuery Anythingslider, и я его добиваюсь.

Теперь мне нужно передать переменную " newState ", определенную из anythingslider (внутри "onPlayerStateChange" из Youtube API) в свой обратный вызов. Это код, сначала переменная, а затем anythingslider:

function onPlayerStateChange(newState) {
....
// other stuff not important
....
}

jQuery.(document).ready(function() {

jQuery('#myslider').anythingSlider({
easing : "swing",
width : 500,
............
............
onSlideComplete : function(){
jQuery('.button').click(function(){
if (newState == '3') {....}
});
}
});
});

Этот код возвращает меня: "newState" не определено... очевидно.

спросил(а) 2021-01-19T14:01:20+03:00 6 месяцев, 2 недели назад
1
Решение
100

Я не уверен, что вы пытаетесь сделать, но в последней версии AnythingSlider есть расширение видео, которое автоматически продолжит воспроизведение видео, когда панель появится в поле зрения, и остановите видео, когда оно исчезнет из поля зрения. Это расширение в настоящее время поддерживает HTMl5, YouTube (embed & iframe) и Vimeo (embed & iframe) с дополнительным кодом на странице вики-видео для управления JW Player и Flow Player (без расширения).

Если вы используете это расширение и вам нужно получить статус видео, он доступен с использованием этого внешнего метода:

var slider = $('#slider').data('AnythingSlider'),
index = slider.$currentPage.find('[id^=asvideo]')[0].id.replace(/asvideo/,''),
status = slider.video.list[index].status;

Примечание. Значением статуса является число для видеороликов YouTube и строка ("воспроизведение", "пауза" и "финиш") для видео Vimeo. Доступ к видео в формате HTML5 можно получить напрямую и не имеет переменной статуса.

ответил(а) 2021-01-19T14:01:20+03:00 6 месяцев, 2 недели назад
45

Основываясь на ваших комментариях:

В onPlayerStateChange у вас есть аргумент newState, поэтому я предполагаю, что вы вызываете эту функцию, делая что-то вроде

result = OnPlayerStateChange(1);

Поэтому newState всегда определяется локально для этой функции.

Если вы хотите получить одно и то же значение в других функциях, вам необходимо определить эту переменную вне всех функций в глобальном пространстве, поэтому

var newSate = 1 

(возможно, в верхней части источника js, чтобы избежать путаницы)

надеюсь, это поможет

ответил(а) 2021-01-19T14:01:20+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема