1

所以我在这个 stackoverflow question 中使用了“标准化曲目列表” ,并且指南指导开发人员使用。

我可以使用 css 轻松地从曲目列表中的每个条目中删除字段(仅显示:无等),并同样改变总体外观。但是,我想为每个条目添加另一个字段。

例如,请参阅您的 spotify 客户端中的“热门列表”功能(对我来说,这是 APPS 下的第二项)。这些列表看起来很像普通的播放列表(当然,也可以这样操作),但每个元素旁边都有一个数字,格式也有点不同。

是否可以在我自己的应用程序中做到这一点,而无需完全重新发明轮子?

我可以做类似的事情:$(".sp-list a").each(function(){$(this).append("foo")}) 但这只会影响当前可见的轨道(ish)。如果播放列表的一部分滚动到视野之外,这些曲目不会受到影响。此外,如果 Spotify 决定重绘列表的任何部分,这确实发生了(例如,如果我将受影响的项目滚动到视野之外并播放曲目),我将丢失更改。所以这不是特别可行/干净。

想法?

4

2 回答 2

1

今天早些时候,当我在与 Spotify 开会时,我向他们询问了这个问题。目前没有向 list.node 添加元素的选项,但他们说他们会调查“问题”。

在此之前,您必须将元素添加到 list.node 之外,您可以将其放在顶部(连同 position: absolute;),或者如果您的元素应该是第一个或最后一栏。

于 2012-01-12T20:39:21.327 回答
0

到目前为止,它(有点)是可能的;不是很好,但仍然。所以仅供参考:

删除字段:在 Spotify 应用播放列表中编辑时间字段

添加 HTML:

//monkey-patch the views.Tracks class
var myTrackView = function (track) {
  views.Track.apply(this, arguments);
  this.node.appendChild($('<span>hi</span>')[0]);
}
myTrackView.prototype = views.Track.prototype;

//now tell the list to use this new class
var list = new views.List(playlist, function (track) {return new myTrackView(track)})
$('#playlist-placeholder').html(list.node)

您会看到 hi 现在出现在每一行上,并且表现得与播放列表的任何其他部分一样。

现在,为了保存我想要显示的额外信息,我只需将它添加到 track.data 对象中,以便我可以从 myTrackView 获取它。

于 2012-10-04T21:41:45.997 回答