这里的网站有一个音乐播放器http://www.numberonedesigns.com/ubermusic.com/ ...当按下随机突出显示的下一个按钮时,它不会正确随机化。它总是回到播放列表上的第一首歌然后随机化下一个..这里是变量代码。我试过搞了一段时间,但我决定需要一些帮助
$next.click(function(){
var num = 0;
$.cookie('plate_time', 1);
if($random.hasClass('active')){
while(num == $audio.currentTrack){num = Math.floor(Math.random() * (opt.playlist.length));}
}else{
num = $audio.currentTrack - 1;
}
$audio.loadTrack(num);
});
$playlist.on('click', '.track', function(){
$audio.loadTrack($(this).attr('rel'));
});
$prev.click(function(){
var num = 0;
$.cookie('plate_time', 0);
if($random.hasClass('active')){
while(num == $audio.currentTrack){num = Math.floor(Math.random() * (opt.playlist.length));}
}else{
num = $audio.currentTrack - 1;
}
$audio.loadTrack(num);
});
答案 0 :(得分:1)
您在功能开始时将num设置为0。 这意味着当当前曲目是播放列表[0]时触发该功能,但是当当前曲目不是播放列表[0]但是num被设置为0时,随机不被调用并且播放列表[0] ]再次播放。 while检查在启动时将num设置为0使您失败。
答案 1 :(得分:1)
既然你问得这么好:
$next.click(function(){
var num = Math.floor(Math.random() * (opt.playlist.length));
//Set the random number here.
$.cookie('plate_time', 1);
if($random.hasClass('active')){
while(num == $audio.currentTrack){num = Math.floor(Math.random() * (opt.playlist.length));}
// leaving it here JIC you get the same track.
}else{
num = $audio.currentTrack - 1;
// cos the ordering still works here if not on random.
}
$audio.loadTrack(num);
});
$playlist.on('click', '.track', function(){
$audio.loadTrack($(this).attr('rel'));
});
$prev.click(function(){
var num = Math.floor(Math.random() * (opt.playlist.length));
$.cookie('plate_time', 0);
if($random.hasClass('active')){
while(num == $audio.currentTrack){num = Math.floor(Math.random() * (opt.playlist.length));}
}else{
num = $audio.currentTrack - 1;
}
$audio.loadTrack(num);
});