gpt4 book ai didi

javascript - 动态分配事件监听器

转载 作者:行者123 更新时间:2023-12-02 18:55:40 24 4
gpt4 key购买 nike

在我的 Titanium 应用程序中,我有一个包含 6 个相同字段的表单,唯一的区别是它们的标题。我没有重复代码(不好的做法、更多的工作等),而是使用 for 循环动态创建带有 2 个标签和一个 View 的每个字段:

//Required info
var startht = 30;
var sz = 40;
var width = '90%';
var labelgrp1 = new Array('Field 1', 'Field 2', 'Field 3', 'Field 4', 'Field 5', 'Field 6');
var viewbg = '#D4D4D4';

//For the first group of labels
for(var i=0; i<labelgrp1.length; i++) {
var view = Titanium.UI.createView({
borderColor:'#000',
backgroundColor:viewbg,
touchEnabled: true,
width:width, height:40,
top: startht + i * (sz - 1)
});

var label = Ti.UI.createLabel({
color: '#303030',
font: { fontSize:16 },
shadowColor: '#aaa',
shadowOffset: {x:1, y:1},
text: labelgrp1[i],
left:10,
width: 'auto', height: 'auto'
});

var symbol = Ti.UI.createLabel({
color: '#303030',
font: { fontSize:14 },
right:10,
text: '>',
width: 'auto', height: 'auto'
});

view.add(label);
view.add(symbol);
win.add(view);
}

我尝试将其添加到底部:

view.addEventListener('focus',function(e){
Ti.API.info("Clicked on " + label.text);
});

但无济于事。有没有办法动态创建事件监听器,或者我是否需要为每个字段提供单独的 View 对象,以便它可以直接绑定(bind)到事件监听器?

最佳答案

Ti.UI.View没有焦点事件。如果您想列出另一个事件,例如 click,您可以将事件监听器添加到 for 循环中的每个 View ,如下所示:

(function(v, msg){
v.addEventListener('click',function(e){
Ti.API.info("Clicked on " + msg);
});
})(view, label.txt);

如果您要添加 text fields ,它确实有 focus 事件,您可以用同样的方式添加监听器。

关于javascript - 动态分配事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15394505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com