0

hrefにspotifyURIが含まれている場合、タブプレイリスト内にdivを表示しようとしています。これは、タブの下にプレイリストを表示するために使用されます。

ステップバイステップこれは私の問題です:

  1. [プレイリスト]タブをクリックしてから、[マイプレイリスト1]をクリックします。
  2. hrefは、プレイリストコンテナのタブプレイリストの下に表示されます。(これまでのところ完璧)
  3. [スタート]タブをクリックしてから、[プレイリスト]タブをクリックします。
  4. プレイリストのリストを表示する代わりに、プレイリストコンテナが再び表示されます。それで、最後に使用されたURLはキャッシュされますか?
  5. 次に、[プレイリスト]タブをもう一度クリックすると、URLが「リセット」され、プレイリストのリストが表示され、プレイリストコンテナが非表示になります。

4.代わりにプレイリストリストをすぐに表示したいのですが。リセットする方法はありますか、それとも何が欠けていますか?

<script>
$(document).ready(function() {
    sp = getSpotifyApi(1);   
    var m = sp.require("sp://import/scripts/api/models");
    updateTabs();
    m.application.observe(m.EVENT.ARGUMENTSCHANGED, updateTabs);
    function updateTabs() 
    {   
        console.log(m.application.arguments);
        var args = m.application.arguments;
        $('.section').hide();
        if (args[1] == "spotify") $("#playlist").html("args:"+args).show();
        else $("#"+args[0]).show();
    }
});
</script>

<div id="playlist" class="section">Container for playlist content</div> 
<div id="start" class="section">Welcome</div>  
<div id="playlists" class="section"> 
My <a href="spotify:app:tabtest:playlists:spotify:user:_username_:playlist_uri1">playlist1</a>
My <a href="spotify:app:tabtest:playlists:spotify:user:_username_:playlist_uri2">playlist2</a>
</div> 

すべての返信をありがとう!

4

2 に答える 2

1

JQuery の使用方法を次に示します。

まず、 Localstorage を使用する必要があります。

var stor = sp.require("sp://import/scripts/storage");

次に、たとえばプレイリストのリストを取得した場合、次のようにリストを作成できます

for (var i=0; i<d.playlists.length; i++) {
$('#playlists').append('My <a id="p' + i + '"href="'+ d.playlists[i] +'">playlist1</a>');
$('#playlists #p'+i).live('click', function(e) {
e.preventdefault();
stor.set('choosenplaylist', d.playlists[i]);
});
}

これは、少し変更したときのストレージ用でした:

if (!stor.get('choosenplaylist')=='') {
location.href=stor.get('choosenplaylist');
}

これは提案であり、アプリに関してテストする必要があります。

于 2012-05-31T07:58:07.897 に答える
0

私は今これを試しています、そして私はあなたのバグを再現することができます(私はそれがバグだと推測しています、私の意見ではタブはURLを置き換えるはずです)

ただし、修正されるまでは、イベント ハンドラーでプレイリスト リンクをキャプチャし、元のイベントをキャンセルしてから、コンテンツを適切なプレイリスト ビューに置き換えることをお勧めします。

タブ テスト コード (gist.github.com)

イベント ハンドラーから実際のビュー バインディングを抽象化し、「実際の」ビュー バインダーの代わりに抽象ビュー バインダーを呼び出すクリック イベント フックを追加しました。これにより、アプリへのディープ リンクもサポートされます。

于 2012-06-05T15:07:18.843 に答える