0

如果播放列表为空,我有一个设置为隐藏的 SoundCloud 小部件。当有人将歌曲添加到播放列表(单击添加按钮)时,是否有重新检查条件的方法?

  <% if @current_user.id == Integer(@party_profile.host) %>
    <div <% if @firstsong == "undefined" %> style="display:none;" <% end %>>
      <object height="81" width="80%" id="myPlayer" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
        <iframe id="sc-widget" width="95%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/<%= @firstsong %>&show_artwork=true&liking=ture&sharing=true&frameborder="no"&scrolling="no"&enable_api=true&object_id=myPlayer"></iframe>
      </object>
    </div>
  <% end %>

我添加这个红宝石条件而不是在点击时刷新 soundcloud 小部件的一部分的原因是因为我不希望每次有人添加歌曲时都刷新小部件(仅当播放器被隐藏并添加了新歌曲时) .

4

2 回答 2

0

不,一旦服务器将其交给客户端,所有的 erb 内容都一成不变。但是,您可以做的是编写一个 js 函数来处理客户端事件

$().ready(function() { $("#some_id_of_a_dom_element_that_changes_due_to_a_user_addition").change(function() { $("song_container").show() }) })

于 2013-02-19T20:12:10.660 回答
0

这里有几件事:

  1. (好消息)有一个 的基于 HTML5 的小部件,它看起来也比 Flash 好得多(并且适用于 iOS 等)。
  2. (好消息)小部件有一个API
  3. (坏消息)获取播放列表内容的实时更新不是 SoundCloud API 的目的,Widget 也不是为之而设计的。出于性能原因,存在一定程度的缓存,这意味着小部件获得的内容可能落后于现实一段时间。

如果不知道您的预期用途是什么,很难说什么是最适合您的解决方案。

于 2013-02-20T01:45:41.137 回答