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

一种方法是在滚动事件上使用处理程序来检测列表已被滚动,然后重新添加该字段。但是,您需要注意它不会最终将其添加到已经添加它的行中,否则您最终会得到重复的字段。这似乎有效:

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 回答