2011-07-26 56 views
0

我試圖綁定Youtube API與jQuery Anythingslider,我正在實現它。Anythingslider和Youtube API傳遞變量

現在,我需要將anythingslider(來自Youtube API的「onPlayerStateChange」)中定義的變量「newState」傳遞到其回調函數中。 這是代碼,第一個變量,然後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」是undefined..obviously..thanks很多

+0

最新問題?你必須爲newState somwhere賦予一個值...明顯嗎? –

+0

是的,newState未定義到「onSlideComplete」Anythingslider回調,而之前(到「onPlayerStateChange」函數)是默認定義的,它的工作原理。 –

+0

所以,問題是:「如何在Anythingslider回調中定義newState? 「再次感謝.. –

回答

0

我不知道你正在嘗試做的,但AnythingSlider的最新版本有一個video extension將自動繼續播放視頻時,面板映入眼簾,並暫停該當視頻出現時,視頻。此擴展程序目前支持在video wiki page上的HTMl5,YouTube(嵌入& iframe)和Vimeo(嵌入& 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視頻的字符串('play','pause'和'finish')。 HTML5視頻狀態可以直接訪問並且沒有狀態變量。

0

根據您的意見:

在onPlayerStateChange您有一個名爲newState的說法,所以我猜你做類似

result = OnPlayerStateChange(1); 

所以消息調用該函數總是在本地定義該函數。

如果你想在其他函數訪問相同的值,你需要定義的所有功能外這個變量,全局空間,所以

var newSate = 1 

(也許在JS源的頂部,以避免混亂)

希望幫助

+0

非常感謝你,我要儘快測試並讓你知道 –

+0

我想過你的解決方案,但我不知道newState變量的值(var newState = 1),我必須把它放在一個'如果'的聲明 –

+0

每個變量都必須以一個值開始...如果你不知道你的價值如何使用它?你沒有多大意義 –