我正在挂起事件处理程序:
Ext.getCmp('MyButton').on('click', this.onClick, null, {info: "foo"});
处理程序是这样的:
function onClick(event, target, options) {
alert(options);
}
我收到回调,但options
正在undefined
。出了什么问题?在我看来,我正在做the docs建议的事情。
答案 0 :(得分:2)
你正在做文档所说的但是你正在解释错误的文档。您可以作为第四个参数传递的选项文字配置侦听器(设置如delay,scope,...)。您不能使用它将额外的参数传递给侦听器函数。这就是createDelegate的用武之地。
var a = new Ext.Button({ text: 'Click!', renderTo: Ext.getBody() });
a.on('click', function(){
alert('click after 2 seconds!');
console.log(arguments); // will log the strings 'Hello' and 'World'
}.createDelegate(a, ['Hello', 'World']), null, { delay: 2000 });