2

私はjavascriptでチタンモバイルにアプリを開発しています。動的メニューは、各新しいオブジェクト (id、テキスト、....、ページ) を for (var x in tab) のループに挿入します。

これらのアイテムを使用して、特定のビューが作成されます。

変数項目 = []; var menuIconsItem = require('view/module/menuIconsItem');

for(var i in itemTab) {
    var page = itemTab[i].page;

    items[i] = new menuIconsItem(itemTab[i]);

    menuFirstLine.add(items[i]);
    (function(itemsEvent) {
        itemsEvent.addEventListener('click', function() {

            Ti.App.fireEvent('test' +i, {
                id : i
            });
        })
    })(items[i]);

}

もう一方のコントローラー側では、最後の ID 参照のみを取得します。

i = 0 から 5 の場合、i は最後の参照のみを取得します。残りは未定義です。

どうすればいいですか?

4

1 に答える 1

3

まずid、menuIconsItem を設定する必要があります。ここでは、ボタンを例に挙げています。

items[i] = Titanium.UI.createButton({
        id:"button_"+i,
        _index: i
})

次に、これを行います:

(function(itemsEvent) {
       itemsEvent.addEventListener('click', function(e) {

           alert(e.source.id);
       })
 })(items[i]);
于 2012-05-11T11:33:12.277 に答える