0

私はSoundcloud APIを使用しています。ユーザーが曲名またはバンド名を検索すると、マイ ページは各トラックに関連付けられたすべてのアルバム アートの出力を返します。各トラックに「再生」ボタンを挿入しました。ただし、再生リンク (「linky」という名前の var) は、ページで最後に呼び出されたトラックのみを使用するようです。したがって、すべての「再生」リンクは、ページの最後のトラックのみを再生します。各「再生」リンクが適切なトラックにリンクするようにするにはどうすればよいですか?

  SC.initialize({
    client_id: 'xxxxeditedforprivacyxxxx'
  });

  function doSearch() {

    var searchTerm = document.getElementById('search').value;

    // Search soundcloud for artists
    SC.get('/tracks', { q: searchTerm}, function(tracks) {
      for(track in tracks) {

        var img = document.createElement('img');
        img.setAttribute("src", (tracks[track]["artwork_url"]));
        var title = tracks[track].title.replace("'", "\\\'").replace("\"", "\\\"");

        var song = document.createElement('div');

        linky = tracks[track].permalink_url;

        img.setAttribute("onclick", "showTrackInfo('" + title + "\\n" + "\\n" + tracks[track].label_name + "\\n\\n" + "(click to close)" + "')"); 



        if (tracks[track]["artwork_url"] == null) {
          console.log(""); } 
          else { 

            var Catalog = document.getElementById('catalog');
            Catalog.appendChild(img);


            $('div#catalog').append('<img src="http://i.imgur.com/rGdvfl7.png" id="play">');

            console.log(linky);

            $('img#play').click(function() {
              $.get(
                'http://soundcloud.com/oembed?' + 
                'url=' + linky + 
                '&format=json&maxheight=296'
                )
              .done(function (response) {
                song.innerHTML = response.html;
                document.getElementById("soundiframe").appendChild(song);
              });
            });
          }


      }
    });
  };

Myconsole.log(linky); は、トラックごとに適切な異なる URL を表示しています。しかし、再生ボタンは、プルされた最後のトラックを再生したいだけです。どこが間違っていますか?どんな助けでも大歓迎です!

4

1 に答える 1