jquery更新全局变量

时间:2014-02-13 21:14:50

标签: javascript jquery

我有这个代码,我想每次点击前进时播放下一首歌。除非他不认识ii,并给我一个错误TypeError:播放列表[ii]未定义

我试过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()
  })

3 个答案:

答案 0 :(得分:2)

我会告诉你,你应该在全球范围内添加类似的内容 范围。在您的情况下,您根本不需要打包全局范围。保持最小化范围。你还有许多词汇问题,比如在行尾和括号中缺少分号,但请尝试以下方法:

$(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();
  });

});

答案 1 :(得分: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'
    }
]

答案 2 :(得分: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变量移到外面,否则你会遇到同样的问题。