您在for語句之外添加button.addEventListener,並且由於每次迭代都覆蓋按鈕var,因此eventListener僅附加到創建的最後一個按鈕。
這可能不是解決問題的最佳方式,但要在for語句中移動button.addEventListener,然後檢查發送到事件的對象中的唯一標識符。例如:
for (x=0;x<5;x++) {
var button = Titanium.UI.createButton({
height:40,
width:100,
top:50*x,
id:x
});
var label = Titanium.UI.createLabel({
text:'LABEL '+x
});
button.add(label);
win1.add(button);
button.addEventListener('click', function(e){
Ti.API.info('Button clicked '+e.source.id);
});
}
button.id屬性剛剛組成,但現在您可以看到哪個按鈕發送事件。你也可以使用標題,或其他任何獨特的東西。
其他可供選擇的方法是爲每個按鈕創建唯一的變量名稱,但這可能是更多的工作。另外,不用將按鈕放在表格行中,而是使用標籤或圖像,然後監聽由表或行生成的事件。
看起來不錯!我會試試看。另一件事,我怎麼才能讓包含點擊按鈕的行消失後點擊(只有點擊行)? – 2011-05-24 08:05:47