Javascript Sound Cloud自定义播放器-“云”;id属性为空";错误
我在使用Sound Cloud定制html5播放器时遇到了一些问题(http://developers.soundcloud.com/docs/custom-player)特别是在internet explorer上(在版本7、8和9上测试) 无论何时创建播放器(现在是通过JS动态创建的),它都会在“sc player.JS”文件(由sound cloud提供)中遇到一个函数错误 错误为“无法获取值或属性“id”:对象为null或未定义”。这就是出错的代码:第640行字符9Javascript Sound Cloud自定义播放器-“云”;id属性为空";错误,javascript,html,soundcloud,Javascript,Html,Soundcloud,我在使用Sound Cloud定制html5播放器时遇到了一些问题(http://developers.soundcloud.com/docs/custom-player)特别是在internet explorer上(在版本7、8和9上测试) 无论何时创建播放器(现在是通过JS动态创建的),它都会在“sc player.JS”文件(由sound cloud提供)中遇到一个函数错误 错误为“无法获取值或属性“id”:对象为null或未定义”。这就是出错的代码:第640行字符9 // select
// selecting tracks in the playlist
$('.sc-trackslist li').live('click', function(event) {
var $track = $(this),
$player = $track.closest('.sc-player'),
trackId = $track.data('sc-track').id,
play = $player.is(':not(.playing)') || $track.is(':not(.active)');
if (play) {
onPlay($player, trackId);
}else{
onPause($player);
}
$track.addClass('active').siblings('li').removeClass('active');
$('.artworks li', $player).each(function(index) {
$(this).toggleClass('active', index === trackId);
});
return false;
});
我知道这是试图在生成的列表中找到一个曲目的id,但是我已经在页面上隐藏了这个列表,所以真的不应该触发click事件吗?我试着一起删除点击事件,但这似乎会导致玩家出现其他一些问题
只是想知道是否有其他人经历过这种情况,或者知道如何摆脱它
编辑-
我手动将“测试”数据附加到轨道上。这似乎解决了第一个错误,但当然也带来了另一个错误。这一次,这一行出现了相同的错误(在sc-player.js文件中):
这是我用来调用播放器的代码,track参数是指向music tracks soundcloud页面的链接,而#player是创建在以下页面之上的空div:
function init_player(track,title) {
$('.open #player').scPlayer({
links: [{url: track, title: title}],
beforeRender : function(tracksData) {
$scplayer = $(this);
$('.sc-trackslist li, .sc-trackslist li a').data({ id: track});
}
}
当用户想要切换到音乐的另一部分时,我有另一个函数,它清空容器div,将#player附加到它(因为它被soundcloud播放器覆盖),然后重新运行上述函数
我的问题是在第二次运行init_player函数时,我得到了错误
很抱歉延迟回复 这一行是错误的:
trackId = $track.data('sc-track').id,
我不能再帮你了,因为我需要剩下的代码…Alon是对的,错误在这里:
trackId=$track.data('sc-track').id
。能否确保元素具有属性数据sc track
?
trackId = $track.data('sc-track').id,