通过Titanium中的ID更改视图的背景颜色

时间:2016-02-25 02:53:01

标签: android ios appcelerator appcelerator-titanium

我有几个视图通过for动态添加到ScrollView,但是当用户点击其中一个视图时,我想更改视图的背景颜色。我有点击事件的以下代码:

After Build

但是使用此代码,更改颜色的视图始终是最后添加的视图。如何使用id更改用户单击的视图?

2 个答案:

答案 0 :(得分:1)

在单击事件中,您将函数中的事件属性作为第一个参数。这有source对象,这是用户点击的元素。

var clickedView;
(function() {
    var id = i;
    viewQuantity.addEventListener('click', function(e) {
        if (clickedView){
             clickedView.backgroundColor= '#000000'; // put your own color here to restore original
        }
        e.source.backgroundColor = '#FFFFFF';
        clickedView = e.source;
    });
})(); 

要稍后更改颜色,您可以存储对象的引用,并稍后更改颜色

答案 1 :(得分:0)

尝试这样的事情:

var scrollView = Ti.UI.createScrollView();

var lastClickedView;

for(var i = 0;i<=10;i++){
    (function(){
        var view = Ti.UI.createView();
        var label = Ti.UI.createLabel();
        view.add(label);
        scrollView.add(view);
        view.addEventListener('click',function(){
            if(lastClickedView){
                lastClickedView.backgroundColor = '#000';
                lastClickedView.children[0].color = '#000';
            }
            view.backgroundColor = '#fff';
            label.color = '#fff';
            lastClickedView = view;
        });
    })();
}