1

そのため、このスタックオーバーフローの質問では「標準化されたトラックリスト」を使用しています。これは、ガイドラインが開発者に使用するように指示しています。

cssを使用してトラックリストの各エントリからフィールドを簡単に削除し(display:noneなど)、同様に一般的な外観を変更できます。ただし、各エントリに別のフィールドを追加したいと思います。

例として、spotifyクライアントの「トップリスト」機能を参照してください(私にとって、これはAPPSの2番目の項目です)。これらのリストは通常​​のプレイリストのように見えますが(もちろん、そのように動作します)、各要素の横に番号があり、形式が少し異なります。

車輪の再発明を完全に行わずに、自分のアプリケーションでこれを行うことは可能でしょうか?

私は次のようなことをすることができます:$(".sp-list a").each(function(){$(this).append("foo")}) しかし、それは現在表示されているトラック(ish)にのみ影響します。プレイリストの一部がスクロールして表示されなくなっても、それらのトラックは影響を受けません。また、Spotifyがリストの一部を再描画することを決定した場合(たとえば、影響を受けたアイテムをスクロールして非表示にしてトラックを再生した場合)、変更は失われます。したがって、これは特に実行可能/クリーンではありません。

考え?

4

2 に答える 2

1

今日、Spotifyとミーティングをしていたので、この質問について尋ねました。現時点では、list.nodeに要素を追加するオプションはありませんが、「問題」を調査するとのことです。

それまでは、list.nodeの外に要素を追加する必要があります。要素を一番上に配置するか(位置: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 に答える