如果href包含spotifyURI,我正在尝试在标签播放列表中显示div。这将用于在选项卡下显示播放列表。
这是我的问题:
我希望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>
非常感谢所有回复!
答案 0 :(得分: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]);
});
}
这是为了改变tad时的存储空间:
if (!stor.get('choosenplaylist')=='') {
location.href=stor.get('choosenplaylist');
}
好的,这是一个建议,需要针对您的应用进行测试。
答案 1 :(得分:0)
我现在尝试这个,我可以重现你的错误(我猜它是一个错误,标签应替换我认为的网址)
但是,在修复之前,我最好的猜测是在取消使用适当的播放列表视图替换内容后,捕获事件处理程序中的播放列表链接并取消原始事件。
Tab test code (on gist.github.com)
我从事件处理程序中抽象出了实际的视图绑定,并添加了一个调用抽象视图绑定器而不是“真实”绑定器的单击事件挂钩,这也支持深入链接到应用程序