commonjs 中的 addEventListener
addEventListener in commonjs
我需要你的帮助。假设我有 2 个文件。
文件 1
function test(){
this.view= Ti.UI.createView({
backgroundColor : 'white'
});
}
module.exports = test;
在文件 2
var view = Ti.UI.createView();
var a = require('file1');
a = new test();
view.add(a.view);
//no problem
现在我想将 eventListeners 添加到视图中。
文件2
var view = Ti.UI.createView();
var a = require('file1');
a=new test();
view.add(a.view);
a.view.addEventListener('click',function(){
a.view.backgroundColor = 'red';
});
//no problem with this too
但是有没有办法添加事件监听器以在文件1中查看?像这样
文件 1
function test(){
this.view = Ti.UI.createView({
backgroundColor : 'white'
});
this.view.addEventListener('click',function(){
this.view.backgroundColor = 'red';
});
}
这样做会出现以下错误
Uncaught TypeError: Cannot set property 'backgroundColor' of undefined
事件侦听器与视图和test
函数相关。所以当你这样做时:
this.view.addEventListener('click',function(){
this.view.backgroundColor = 'red';
});
您正在尝试访问 this.view
内的 view
内的 backgroundColor
。
在附加事件之前捕获外部范围并在执行点击时使用它:
function test(){
var _this = this;
this.view = Ti.UI.createView({
backgroundColor : 'white'
});
this.view.addEventListener('click',function(){
_this.view.backgroundColor = 'red';
});
}
这应该会为您提供您期望的正确参考。
我需要你的帮助。假设我有 2 个文件。
文件 1
function test(){
this.view= Ti.UI.createView({
backgroundColor : 'white'
});
}
module.exports = test;
在文件 2
var view = Ti.UI.createView();
var a = require('file1');
a = new test();
view.add(a.view);
//no problem
现在我想将 eventListeners 添加到视图中。
文件2
var view = Ti.UI.createView();
var a = require('file1');
a=new test();
view.add(a.view);
a.view.addEventListener('click',function(){
a.view.backgroundColor = 'red';
});
//no problem with this too
但是有没有办法添加事件监听器以在文件1中查看?像这样
文件 1
function test(){
this.view = Ti.UI.createView({
backgroundColor : 'white'
});
this.view.addEventListener('click',function(){
this.view.backgroundColor = 'red';
});
}
这样做会出现以下错误
Uncaught TypeError: Cannot set property 'backgroundColor' of undefined
事件侦听器与视图和test
函数相关。所以当你这样做时:
this.view.addEventListener('click',function(){
this.view.backgroundColor = 'red';
});
您正在尝试访问 this.view
内的 view
内的 backgroundColor
。
在附加事件之前捕获外部范围并在执行点击时使用它:
function test(){
var _this = this;
this.view = Ti.UI.createView({
backgroundColor : 'white'
});
this.view.addEventListener('click',function(){
_this.view.backgroundColor = 'red';
});
}
这应该会为您提供您期望的正确参考。