0

こんにちは、phonegap でアプリケーションを実行しています。そのアプリケーションでは、リストビューにユーザーのリストを表示する必要があり、プロファイルの写真、名前、番号、およびオンライン ステータスが含まれています。

for (var i = 0; i < roster_items.length; i++) {
    var jid_contact=roster_items[i].getAttribute('jid');
    var name_contact=roster_items[i].getAttribute('name');
    ///  Add all the contacts to  Array
        $('#contacts-listview').append(
                                       '<a href="#" onclick="user_contactsClicked('+ i + ');">' +
                                       '</br>'+
                                       '<div id="contact_img">'+
                                       '<img id="splash" src="images/contact_default_pic.png"  />'+
                                       '<ul id="menu">'+'<li id="contact">'+name_contact+'</li>'+
                                       '<li id="status">'+jid_contact+'</li>'+'</ul>'+
                                       '<div class="pull-right"><div><img id=i class="status_img" src="images/user_online.png"  /></div>'+
                                       '<div style="margin-bottom: 10px;"><ol id="date">'+
                                       '<li>date</li>'+
                                       '<li>time</li>'+
                                       '</ol></div></div>'+
                                       '</div>'+
                                       '</br>'+
                                       '</a>'
                    );
        }

特定のユーザーのオンライン ステータスを変更する関数を呼び出して、画像を変更します。

changeOnlineStatus_contact : function(elementPos) {
    alert(elementPos);
    if(elementPos>=0) {
        //Get current table
        document.getElementById(i).src = "images/user_offline.png";
    }
}

このために、img要素の場合に動的に指定したいと思います。私に提案してください。

前もって感謝します..

4

1 に答える 1

0

画像にIDが設定されていない理由は、次のものがあるためです。

"…&lt;img id=i class=…"つまり、すべての画像の ID は「i」です。

これを次のように変更した場合:

"…&lt;img id=\""+i+"\" class=…"次に、の値をiid 属性として使用します


UI へのバインディングがより複雑な場合は、http://knockoutjs.com/のようなものを参照することをお勧めします。この方法で、基になるモデルを更新すると、それを表すために html が自動的に更新されます。

于 2013-09-04T09:46:17.480 に答える