ExtJS:传递事件处理程序的参数

时间:2011-03-03 22:26:23

标签: events extjs

我正在挂起事件处理程序:

Ext.getCmp('MyButton').on('click', this.onClick, null, {info: "foo"});

处理程序是这样的:

function onClick(event, target, options) {
  alert(options);
}

我收到回调,但options正在undefined。出了什么问题?在我看来,我正在做the docs建议的事情。

1 个答案:

答案 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 });