jquery mobile listview无法正确更新 - 交互问题

时间:2013-08-18 21:00:05

标签: jquery jquery-ui jquery-mobile

我正在尝试使用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”列表视图中,有表示播放列表的条目;我们的想法是将选择的播放列表的tracks添加到位于另一个页面的jQuery mobile的listview(queueL)中。

这是代码的片段:当我点击特定按钮(addToQueueB)时,JS获取与所选播放列表关联的数组,并使用listview标记的表单中的元素填充队列,即:

$("#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页面时,列表视图已正确填充,但我无法与其元素进行交互!

此外,如果我添加另一组曲目点击另一个播放列表,新的元素将无法在列表视图中正确显示。

我尝试在trigger("create")和/或.listview("refresh")处插入,但通常是控制台出错,即(用于刷新):

  

未捕获错误:无法在listview之前调用方法   初始化;试图调用方法'刷新'

我该怎么办?

0 个答案:

没有答案