我正在尝试使用 jQuery mobile 开发一个 Web 应用程序,但我发现了一个奇怪的问题。
在代码中,我使用该函数getJSON
从 php 转换文件中提取信息并将其(不是提取的所有信息)存储到多维数组中:
var PL=[];
tempJsonindex=0;
tempPlaylistIndex=0;
loaderPlayslistName=1;
var containerList=' ';
$.getJSON("tracce.php", function(json) {
$.each(json.playlists,function(i,playlist){
$(" #playlistL").append($('<li/>', {
class: 'playlistQueue',
'data-icon':'headphones',
val: i
}).append($('<a/>', {
'data-transition': 'slide',
'text': playlist.playlistName
})));
PL[i]=[];
$.each(playlist.tracks,function(j,track){
PL[i].push({"name":track.name,"artist":track.artist,"file":track.file,"cover":track.cover,"stars":track.stars,"mood":track.mood});
});
});
});
在“ playlistL
”列表视图中有指示播放列表的条目;这个想法是将所选播放列表的曲目添加到位于另一个页面中的 jQuery 移动列表视图 (queueL) 中。
这是代码片段:当我点击一个特定的按钮addToQueueB
(
$("#addToQueueB").click(function(){
var temp=PL[selectedPL];
$(" #queueL").trigger("create")
for(var i=0;i<temp.length;i++){
$(" #queueL").append($('<li/>', {
class: 'songInQueue ui-state-disabled',
val: indexQueue,
"data-icon":"stop",
id: "e"+indexQueue,
}).append($('<a/>', {
'data-transition': 'slide',
'text': temp[i].name+ "-"+temp[i].artist
}).append($('<img/>',{
'src':temp[i].cover
})).append($('<h2/>',{
'text':temp[i].name
})).append($('<p/>'),{
'text':temp[i].artist
})));
indexQueue++;
}
});
问题是当我转到queueL
's 页面时,列表视图已正确填充,但我无法与它的元素进行交互!
此外,如果我将另一组曲目单击添加到另一个播放列表,则新元素不会在列表视图中正确显示。
我试图在任何地方插入trigger("create")
和/或.listview("refresh")
,但通常它会在控制台出现错误,即(用于刷新):
未捕获的错误:无法在初始化之前调用 listview 上的方法;试图调用方法“刷新”
我能做些什么?