0

我正在尝试将 Youtube API 与 jQuery Anythingslider 绑定,并且我正在实现它。

现在,我需要将在anythingslider 中定义的变量“ newState ”(在Youtube API 的“onPlayerStateChange”中)传递到它的回调中。这是代码,首先是变量,然后是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”未定义..显然..非常感谢

4

2 回答 2

0

根据您的评论:

在 onPlayerStateChange 中,您有一个名为 newState 的参数,所以我猜您通过执行类似的操作来调用该函数

result = OnPlayerStateChange(1);

所以 newState 总是在该函数的本地定义。

如果要在其他函数中访问相同的值,则需要在所有函数之外,在全局空间中定义这个变量,所以

var newSate = 1 

(可能在 js 源代码的顶部以避免混淆)

希望有帮助

于 2011-07-26T10:40:47.687 回答
0

我不确定您要做什么,但最新版本的 AnythingSlider 有一个视频扩展程序,当面板进入视图时会自动继续播放视频,并在视频消失时暂停视频。此扩展目前支持 HTMl5、YouTube(嵌入和 iframe)和 Vimeo(嵌入和 iframe),并在视频 wiki 页面上附加代码来控制 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 视频状态可以直接访问,并且没有状态变量。

于 2011-07-29T23:11:34.363 回答