1

Spotify API が提供するリストにフィールドを追加しようとしています。

リストを作成するための私のコードは次のとおりです。

var playList_view = new views.List(playlist_test, function(track) {
                return new views.Track(track, views.Track.FIELD.NAME | 
                                            views.Track.FIELD.ARTIST | 
                                            views.Track.FIELD.ALBUM);
            });

$('#tracks').append(playList_view.node);

関数を介してビューに追加する方法がわからないので、事後的に追加しています。これを行うためのより良い方法があれば、私に知らせてください。

これがその試みです(部分的に成功しています):

$('.sp-list a').append("<span>Test</span>");

これにより、画面に表示されるすべてのトラックの他の列の右側に列が正しく追加されます。リストを下にスクロールすると問題が発生します。リフレッシュされているようで、htmlが書き換えられています。ここでの解決策は、ビューの作成時に関数にコードを追加するか、何らかの変更/更新イベントを観察することだと思います。残念ながら、イベントが何であるか、またはそれらのリストを見つけるのに適した場所がわかりません.

どんな助けでも大歓迎です!

ありがとう、ケビン

4

1 に答える 1

1

これを行う1つの方法は、 scrollイベントでハンドラーを使用して、リストがスクロールされたことを検出してから、フィールドを再度追加することです。ただし、すでに追加されている行に追加されないように注意する必要があります。そうしないと、フィールドが重複してしまいます。これはうまくいくようです:

function addCustomField() {
    $('.sp-list a.sp-item').each(function() {
        if($(".custom-field",$(this)).length == 0) // check field doesn't already exist
        {
            $(this).append("<span class=\"custom-field\">Test</span>");
        }
    });
}

setTimeout(function() {
    addCustomField(); // Add the custom field to the visible tracks
    $('.sp-list').scroll(addCustomField); // Register the scroll handler
},10);
于 2012-06-15T20:00:29.177 に答える