如何在jQuery中实现可排序的播放列表

时间:2011-06-17 01:27:35

标签: javascript jquery html jquery-ui-sortable

我正在制作一个简单的音乐播放在线应用。我想制作一个歌曲播放列表,我希望播放列表中的歌曲可以排序。我打算使用jQuery“sortable”插件。但是,我想跟踪歌曲的顺序,这样当一首歌结束时,我知道下一首歌要开始。我不是创建一个事件处理程序,以便在用户更改歌曲顺序时执行,并实际跟踪歌曲的顺序,我目前的解决方案就是这样:

  1. 跟踪当前正在播放的歌曲元素的ID
  2. 当歌曲结束时,使用jQuery查找具有当前id
  3. 的元素
  4. 使用.next()获取下一首歌曲
  5. 这个实现有错误吗?不断追踪歌曲的顺序会不会更好?

2 个答案:

答案 0 :(得分:2)

似乎完全合适,我实际上在完全不相关的网站上使用完全相同的方法。这是我为了获得下一个身份而做的事情,我知道你说你已经有了一些工作,但我认为无论如何我都会分享以防它有用:

current_id = window.my_id;
next_id = $('#' + current_id).next().attr('id');

if (next_id == undefined) {
    return; // no more siblings after it
}

// do what you need to do here with next_id to actually load the next content
// in my web apps case, it removes some elements and just changes the hash
// which another function handles

current_id = next_id;
window.my_id = current_id;

答案 1 :(得分:1)

这没有什么不妥。它节省了必须保留订单的Array,这需要按照重新订购进行更新,而不是仅在需要时读取下一首曲目(在前一曲目结束时)。