Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AppAccelerator中设置View和TextView的ID_Javascript_Textarea_Appcelerator - Fatal编程技术网

Javascript 在AppAccelerator中设置View和TextView的ID

Javascript 在AppAccelerator中设置View和TextView的ID,javascript,textarea,appcelerator,Javascript,Textarea,Appcelerator,我正在为创建随机文本区域创建一个for,但我需要知道用户按下了哪个文本区域 有没有办法为每个文本区域输入唯一的ID 如何创建文本视图: var txtArea = Ti.UI.createTextArea({ color : '#000', backgroundColor : 'transparent', font: { fontSize : 28, fontWeight : 'normal', }, editable : false, textAlign

我正在为创建随机文本区域创建一个for,但我需要知道用户按下了哪个文本区域

有没有办法为每个文本区域输入唯一的ID

如何创建文本视图:

var txtArea = Ti.UI.createTextArea({
  color : '#000',
  backgroundColor : 'transparent',
  font: {
    fontSize : 28,
    fontWeight : 'normal',
  },
  editable : false,
  textAlign : 'left',
  value : a[i],
  textAlign : 'center',
  top : '30%',
  width : '100%',
  height : '100%'
});

我试图输入“id:I”,但所有textAreas都返回相同的id。

如果要分配数字id,方法是正确的,但我认为必须在表视图的行中插入所有textAreas。这是因为您从表视图行而不是从Textarea获取ID。如果在表视图行中插入,则id的尝试是正确的

创建文本区域的代码如下所示:

var txtArea = Ti.UI.createTextArea({
    id: i,
    value : "test n " + i,
    textAlign : 'left',
    textAlign : 'center',
    top : '30%',
    width : '100%',
    height : '100%'
});
此外,您还可以获得每行的
id
,只需添加一个单击事件侦听器,在特定情况下:

tableViewRowName.addEventListener('click', function(e) {
    console.log(e.source.id);
}
让我知道如果工作,不要犹豫与我联系

完整示例

在控制器js中

var-win=Ti.UI.createWindow();
var scrollableView=Ti.UI.createScrollView();
var table=Ti.UI.createTableView();
var tableData=[];

对于(var i=0;i不建议将自定义属性添加到钛代理中。以下是我将要做的(基于我对您尝试实现的目标的猜测):

for(变量i=0;i<10;i++){
var txtArea=Ti.UI.createTextArea({
值:“测试n”+i,
textAlign:'左',
textAlign:'中心',
前三名:“30%”,
宽度:“100%”,
身高:“100%”
});
(功能(){
var id=i;
txtArea.addEventListener('click',function(){
console.log(id);
});
})();
}

我已将我的textarea放在ScrollView中。这可能是不工作的原因吗?请尝试将tableview放在ScrollView中。对于get id,必须在tableview中插入textarea…如果您有ScrollView没有问题。那么它将类似于:for(int I=0;Ivar win = Ti.UI.createWindow(); var scrollableView = Ti.UI.createScrollView(); var table = Ti.UI.createTableView(); var tableData = []; for(var i=0;i<list.length;i++){ var row = Ti.UI.createTableViewRow(); var txtArea = Ti.UI.createTextArea({ id: i, value : "test n " + i, textAlign : 'left', textAlign : 'center', top : '30%', width : '100%', height : '100%' }); row.add(txtArea); tableData.push(row); } table.setData(tableData); scrollableView.add(table); win.add(scrollableView); win.open();
for(var i = 0; i < 10; i++){
    var txtArea = Ti.UI.createTextArea({
        value : "test n " + i,
        textAlign : 'left',
        textAlign : 'center',
        top : '30%',
        width : '100%',
        height : '100%'
    });
    (function(){
        var id = i;
        txtArea.addEventListener('click',function(){
            console.log(id);
        });
    })();
}