事件监听器功能进入循环?请帮忙

时间:2011-07-11 06:50:25

标签: events event-handling titanium appcelerator

我面临着一个小问题。在一个js文件中,我正在点击这样的事件:Ti.App.fireEvent('foo', {name:col});

在另一个文件中我正在听这个事件。

tableimg.addEventListener('click',function(e){
        if(e.source.backgroundColor==''){CreateTableWindow(1,e.source.id);}
        else{
            changeTheDinerStatus();
            Ti.App.addEventListener('foo', function(data) 
                                    { 
                                    var ke=data.name;
                                    alert(e.source.id+'@@@'+ke);
                                    e.source.backgroundColor = ke; 
                                    });                                                 
                                    }
                                    }); 

所以这就是问题所在,我一直在触发事件,监听器中的函数正在重复......

像这样

第一次点击它运行一次..1 @@@ #FFF 如果点击第二个表,它就转到了 1 @@@#AAA 2 @@@#AAA 第三次 1 @@@#BBB 2 @@@#BBB 3 @@@#BBB

这种情况一直都是这样......

1 个答案:

答案 0 :(得分:1)

我无法在我面前看到您的DOM结构,但我认为,主要问题是,您在每次点击时都添加了一个事件监听器。 你不应该这样做。 如果您需要以这种方式解决问题,则应删除现有侦听器

element.removeEventListener('foo',spyOnUser,false)