1

jQuery モバイルを使用して 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) をクリックすると、JS は選択したプレイリストに関連付けられた配列を取得し、リストビューのタグ付きフォームでその中の要素をキューに取り込みます。つまり:

$("#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")and/orを挿入しようとしまし.listview("refresh")たが、コンソールにエラーが発生することがよくあります。つまり、(更新用) です。

不明なエラー: 初期化の前にリストビューでメソッドを呼び出すことはできません。メソッド 'refresh' を呼び出そうとしました

私に何ができる?

4

0 に答える 0