Последовательность не повторяющихся числе в заданном диапазоне
$(document).ready(function() {
for ( var list = [], i = 0; i < 4; ) {
list[ i ] = ++i;
}
list.sort(function() {
return Math.random() - .5;
});
$('.play').click(function(event) {
$('.start').css('display', 'none');
$('.question#'+list.shift()).addClass('active');
var num = $('.active').attr('id');
$('.question.active').append('<audio id="player" autoplay="autoplay" src=" '+num+'.mp3 "></audio>')
console.log(num);
console.log(list);
console.log(list.shift());
});
$('.btn').click(function(event) {
if ($(this).hasClass('yes')) {
$("#player")[0].pause();
$(this).parent().css('display', 'none').removeClass('active');
$('.question#'+list.shift()).addClass('active');
var num = $('.active').attr('id');
$('.question.active').append('<audio id="player" autoplay="autoplay" src=" '+num+'.mp3 "></audio>')
}else{
$(this).css('border','1px solid red');
}
console.log(num);
console.log(list);
console.log(list.shift());
});
});
Не могу понять, где ошибка. Скрипт берет случайное число из массива. подставляет его в айдишник и включает блок с этим айди. Но вот проблема в том, что на кнопку можно нажать всего 2 раза, потом выдает undefined. Помогите разобратсья
Источник: Stack Overflow на русском