2

我已经使用初始化函数动态创建了六个按钮,我还为每个按钮动态分配了不同的 ID,我想为每个按钮处理事件,当我单击每个不同的按钮时,我会收到第六个按钮 ID 的警报消息,如何处理特定的按钮事件。谢谢

Ext.define("DynamicButton.view.Main", {
extend: 'Ext.Panel',
initialize: function () {
var me = this;
me.names = ['Button1', 'Button2', 'Button3', 'Button4', 'Button5', 'Button6'];
var toolBar = Ext.create('Ext.Toolbar', {
docked: "bottom"
});
this.add(toolBar);

for (var i = 0; i < me.names.length; i++) {
var name = me.names[i];
var button = Ext.create('Ext.Button', {
id: 'Btn' + name,
html: name,
handler: function() {
alert(button.id);
},
scope: this
});
toolBar.add(button);
}
},
config: {
}
});
4

2 回答 2

3

您还可以通过处理函数的参数访问按钮:

handler: function (button, event) { 
    console.log(button.id);
}

如果您想更改范围,我可能会很有用。

希望这可以帮助

于 2012-06-08T16:05:15.627 回答
2

这是因为范围。在这种情况下,“按钮”不是您认为的那样。

在这种情况下,您可能想尝试:

this.id

此实例中的“this”是指被单击的按钮的实例。

于 2012-06-08T15:56:42.677 回答