2014-02-13 134 views
0

我有這個代碼,我想每次點擊轉發時播放下一首歌曲。除了他不認識ii,並拋出一個錯誤TypeError:播放列表[ii]未定義jquery更新全局變量

我試過window.ii,同樣的錯誤。

$(document).ready(function(){ 
ii = 0 


var playlist = [ 
    { 
     'name' : "Ida Maria - Oh My God", 
     'src' : "01 Oh My God.m4a", 
     'codec' : 'mp4' 
    }, 
    { 
     'name' : "Miley Cyrus - Wrecking Ball", 
     'src' : "06 Wrecking Ball.mp3", 
     'codec' : 'mpeg' 
    } 
] 


    $('.forward').click(function(){ 
    ii++ 
    audio.unload() 
    audio.urls = mp3_folder + playlist[ii].src 
    audio.load() 
    audio.play() 
    }) 
+0

你可以改變「VAR播放列表=」到「播放列表=」等等這是一個像你一樣的全球化。或者在函數外部使用「var」... – dandavis

回答

1

嘗試宣告playlist這樣的:

window.playlist

所以你必須

window.playlist = [ 
    { 
     'name' : "Ida Maria - Oh My God", 
     'src' : "01 Oh My God.m4a", 
     'codec' : 'mp4' 
    }, 
    { 
     'name' : "Miley Cyrus - Wrecking Ball", 
     'src' : "06 Wrecking Ball.mp3", 
     'codec' : 'mpeg' 
    } 
] 
0

您需要將您的播放列表變量的onload事件方法之外。

var playlist = [ 
    { 
     'name' : "Ida Maria - Oh My God", 
     'src' : "01 Oh My God.m4a", 
     'codec' : 'mp4' 
    }, 
    { 
     'name' : "Miley Cyrus - Wrecking Ball", 
     'src' : "06 Wrecking Ball.mp3", 
     'codec' : 'mpeg' 
    } 
]; 

var ii = 0; 

$(document).ready(function(){ 
    $('.forward').click(function(){ 
     ii++; 
     audio.unload(); 
     audio.urls = mp3_folder + playlist[ii].src; 
     audio.load(); 
     audio.play(); 
    }); 
}); 

您可能想要將ii變量也移到外面,否則您將遇到同樣的問題。

2

我會說你會告訴你,你應該不是添加這樣的東西在你的全球 範圍內。就你而言,你根本不需要全球化。保持作用域minimum.You也有很多的詞彙問題,如在線路末端缺失分號和右括號,但嘗試以下方法:

$(document).ready(function(){ 
var ii = 0; 


var playlist = [ 
    { 
     'name' : "Ida Maria - Oh My God", 
     'src' : "01 Oh My God.m4a", 
     'codec' : 'mp4' 
    }, 
    { 
     'name' : "Miley Cyrus - Wrecking Ball", 
     'src' : "06 Wrecking Ball.mp3", 
     'codec' : 'mpeg' 
    } 
]; 


    $('.forward').click(function(){ 
    ii++; 
    audio.unload(); 
    audio.urls = mp3_folder + playlist[ii].src; 
    audio.load(); 
    audio.play(); 
    }); 

}); 
+0

+1爲唯一一個非全局解決方案 – Johan