Я звонил в Soundcloud плеер на моем сайте по жанру. Однако иногда он возвращает «Невозможно прочитать свойство« uri »неопределенного», а иногда это не так. Любая идея, почему я смотрю на свой код?Soundcloud api «Uncaught TypeError: Невозможно прочитать свойство« uri »undefined»
<div class="col-xs-6 col-md-3">
<a href="javascript:;" class="genre" style="width: 100%; float:left;">
<div class="card trance" data-genre="trance">
<div class="overlay-card" style="display: table;">
<span><h2>Trance</h2></span>
</div>
</div>
</a>
</div>
<div class="col-xs-6 col-md-3">
<a href="javascript:;" class="genre" style="width: 100%; float:left;">
<div class="card techno" data-genre="techno">
<div class="overlay-card" style="display: table;">
<span><h2>Techno</h2></span>
</div>
</div>
</a>
</div>
<div class="col-xs-6 col-md-3">
<a href="javascript:;" class="genre" style="width: 100%; float:left;">
<div class="card metal" data-genre="metal">
<div class="overlay-card" style="display: table;">
<span><h2>Metal</h2></span>
</div>
</div>
</a>
</div>
играет функция Нажмите действие функции
$('.genre').click(function(){
if($(this).find('.card').attr('data-genre').length > 0){
playSound($(this).find('.card').attr('data-genre'));
$('#results').html('<img src="assets/image/spinner.gif" class="loader">').show();
$('#loader').css({'display': 'none'});
}else{
console.log('length 0');
}
});
Sound
function playSound(genre){
SC.get('/tracks',
{
genres: $.trim(genre),
order: 'hotness',
// q: '*',
bpm: {
from: 100
},
limit: 50
}, function(tracks){
var random = Math.floor(Math.random() * 49);
console.log(genre); /* It is always returning true */
SC.oEmbed(tracks[random].uri, {auto_play: true, maxheight: 240, show_comments: true }, document.getElementById('results'));
$('.genre-playing h3').html(genre.toUpperCase());
$('.genre-playing').css({'display': 'block'});
});
}
Чтобы проверить, что этот вопрос, я console.log(genre)
внутри playSound()
. Он всегда возвращает жанр, который я нажал. Тогда в чем проблема?
Вы проверили значение случайной против длины массива треков? console.log их обоих и посмотреть, какие значения у них есть, когда вы получаете ошибку. – theatlasroom
Журнал 'track [random]' в консоли и проверка. –
Более безопасным случайным числом будет 'var random = Math.floor (Math.random() * tracks.length)' – Phil