2

初期化機能を使用して動的に6つのボタンを作成しました。また、各ボタンに異なるIDを動的に割り当てました。各ボタンのイベントを処理したいです。異なるボタンのそれぞれをクリックすると、6番目のボタン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 に答える