我在 jQuery Mobile 中有一个列表。该列表将有一个 id 号和一个搜索查询号,例如
"<li><a href='./page.html?id=2' data-transition='slide' id=1>Name</a></li>";
和
"<li><a href='./page.html?id=10' data-transition='slide' id=2>Name</a></li>";
我从 ajax 回调创建此列表,因此它像这样打印在页面上$('#list').html(data);
。
我想做的是将列表放在一个数组中,这样当用户单击其中一个列表选项时,它会根据搜索查询提取信息,或者?id=2
用户可以单击按钮移动到下一个列表项是id=2
。
因此搜索查询从数据库中获取正确的信息,但 id 是数组中的位置。
下面是填充列表的代码,它是来自 ajax 函数的回调
function trackscallback(rtndata)
{
var data="";
for(j=0;j<=rtndata.length -1;j++)
{
data = data + "<li><a href='./page.html?id="+rtndata[j].track_id+"' data-transition='slide' id="+rtndata[j].name+"><h3>" + rtndata[j].name + "</h3><p><strong>" + rtndata[j].a_name + "</strong></p><p>" + rtndata[j].genre+ "</p></a></li>";
}
$('#list').html(data);
$('#list').listview('refresh');
}
因此,此代码将在我的 DOM 中创建一个列表,用户可以单击其中获取更多信息,或者在我的情况下播放 mp3。我遇到的问题是,这只能让用户一次播放一个 mp3。这意味着当 mp3 播放完毕后,用户必须返回列表以选择要播放的新 mp3。
我想要的是我想要的是,在用户完成播放后从列表中选择一个项目后,它会转到列表中的下一个项目并播放它。
我播放 mp3 的代码如下:
function playtrackcallback(rtndata)
{
track = rtndata.artist_name + " " + "-" + " " + rtndata.track_name;
picture = "<img src='"+rtndata.track_art_url+"'/>";
playingSongId = rtndata.track_id;
$('#songPicture').html(picture);
$('#songName').text(track);
playSong(rtndata);
}
function playSong(rtndata) {
//Stop the sound from playing
soundManager.destroySound(mySound);
//Save some variables
playingSong = rtndata.track_id;
//Create the sound and begin playing whenever!
soundManager.createSound({
id: mySound,
url: rtndata.track_url,
autoPlay: true,
stream: true,
onplay: function () {
setPauseState(false);
setPlayTime();
},