1

私は MVC Extjs を使用しており、ボタンのクリック イベントで 2 つの異なる関数を実行したいと考えています。これまでのところ、これは私のコントローラーコードです:

Ext.define('MyApp.controller.myController', {
    extend: 'Ext.app.Controller',

    runFirst: function(button, e, options) {
        console.log('first function is running');
    },

    runSecond: function(button, e, options) {
        console.log('second function is running');
    },


    init: function(application) {
        this.control({
            "#myButton": {
                click: this.runFirst, runSecond //THIS PART DOESN'T WORK :(
            }
        });
    }

});

myButton をクリックしても実行runFirstできません。runSecond

ここからすべてのコードをダウンロードできます: https://github.com/nitzaalfinas/Extjs-run-2-function-with-one-click/tree/one

1 回のボタン クリックで 2 つの機能を実行する方法を教えてください。

4

1 に答える 1

6

あなたがしていることは有効なJavascriptではありません。1つの変数に2つの異なる値を割り当てることはできません(これがすべてclick:です)

したがって、次の方法でそれを達成できます。

init: function(application) {
    this.control({
        "#myButton": {
            click: this.runBoth
        }
    });
}

runBoth: function(button, e, options) {
    this.runFirst(button, e, options);
    this.runSecond(button, e, options);
}

または、無名関数でそれを行います:

init: function(application) {
    this.control({
        "#myButton": {
            click: function(button, e, options) {
                this.runFirst(button, e, options);
                this.runSecond(button, e, options);
            }
        }
    });
}
于 2013-03-15T04:18:19.197 に答える