2012-04-10 9 views
1

Sound Cloudカスタムhtml5プレーヤー(http://developers.soundcloud.com/docs/custom-player)をInternet Explorerで使用する際に問題が発生しています(バージョン7,8,9でテスト済み)。サウンドクラウドカスタムプレーヤー - 「idプロパティがnull」エラー

"sc-player.js"ファイル(サウンドクラウドhereで提供)の関数でエラーが発生しているようです。

エラーは、「値またはプロパティ 'id':オブジェクトがnullまたは未定義」を取得できません。これは台無しコードです:行640文字9

// 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; 
}); 

私は本当にshouldn、これはしかし、私は、ページ上でこのリストを隠して、生成されたリスト上のトラックのIDを検索しようとしている理解」そのクリックイベントは発生しませんか?私は一緒にクリックイベントを削除しようとしましたが、それはプレイヤーに他の多くの問題を引き起こすようです。

他の誰かがこれを経験したか、それを回避する方法が分かっているのだろうか?

EDIT-

手動でトラックに「テスト」データを添付しました。そして、これはその最初のエラーを解決するように思われますが、もちろん別のエラーが発生します。 (SC-player.jsファイルで)同じエラーがこの行のために吐き出される。この時間は:

getPlayerData = function(node) { 
    return players[$(node).data('sc-player').id]; 
} 

これは、私は選手へのリンクをしているトラックの引数を呼び出すためにを使用したコードです音楽がて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(サウンドクラウドプレーヤーによって上書きされたため)、上記の関数を再実行します。

私の問題は、init_player関数が2回目に実行されたときにエラーが発生します。

遅れて申し訳ありません!

+0

アロンが正しいと、エラーはここにある: 'trackId = $ track.data( 'sc-track')。id'です。要素に 'data-sc-track'属性が付いていることを確認できますか? – nickf

答えて

0

この行が間違っている:

trackId = $track.data('sc-track').id, 

私は、コードの残りの部分を必要とするので、私は多くのこと、あなたを助けることができない...

関連する問題