17

ExtJS4.1。

Ext.button.click();Ext.buttonクラスにメソッドのようなものはありますか?

1つの方法でボタンをプログラムで「クリック」することは可能ですか?

4

9 に答える 9

24

または、MVC構造を使用している場合は、ボタンのクリックイベントを発生させることができます。コントローラーでイベントをリッスンしていて、関連する関数がある場合は、イベントが呼び出されます。

button.fireEvent('click', button);
于 2012-08-13T06:51:04.910 に答える
10

このフォーラムの最後の回答は、ここでそれを行う方法についてのより多くの洞察を与えるかもしれません-

1)Create the event code in a function and call the function from both sides: btn.on("clic", ...) and from the code you want to simulate the click.

2)Use: btnView.btnEl.dom.click();

から-http://www.sencha.com/forum/showthread.php?37772-Solved-Programmatically-click-an- Ext.Button

于 2012-08-11T13:22:01.743 に答える
6

ExtJS 4.2.1

Ext.get('component-id-of-extjs-button').el.dom.click();
Ext.get('toggle-button2').el.dom.click();

私のために働きます。

于 2013-07-11T19:56:43.967 に答える
2

ハンドラーを使用するボタンの場合、ボタンの関数を直接呼び出すことができます。

Ext JSコンポーネントであると考えるbuttonと、次のものを使用できます。

   button.handler(button); 

または、イベント'クリック'の機能に到達したい場合:

   button.listeners.click(button);

これは、さまざまなボタンイベントを呼び出す場合にも機能します。

于 2013-06-29T09:16:43.637 に答える
2

多くのボタンに必要だったので、ボタンクラスにオーバーライドを実装する方が簡単でした。これにより、クリック関数が追加されます。

Ext.define('Ext.override.Button',{
    override:'Ext.button.Button',
    click:function() {
        this.getEl().dom.click();
    }
})

このオーバーライドがコードベースに追加された後、以下は魅力のように機能します。

Ext.getCmp("MyButton").click()

fireEventやfireHandlerとは異なり、これはすべての種類のボタンで機能します。クリックイベントまたはハンドラーがあるかどうか、またはクリックされたボタンも押されたとマークする必要があるトグルボタンであるかどうかは関係ありません。

于 2015-07-31T08:06:04.483 に答える
1

ボタンの「ハンドラー」を実行する必要がある場合は、これを実行するだけです(ExtJS 4.2でテスト済み)

button.fireHandler()
于 2014-07-10T20:11:25.723 に答える
0

テストスクリプトでこれを実行したい場合は、私のExt.ux.Testライブラリを見てください。他の目的で必要な場合は、アプローチを再検討することをお勧めします。

于 2012-08-11T18:25:21.427 に答える
0

他の答えはどれも私にはうまくいきませんでしたが、私はもっと単純なものを見つけました:

var button=Ext.get('the_id_div');
button.dom.click();
于 2015-06-08T06:38:55.210 に答える
0
 document.getElementById("someButtonId").click(); 
于 2016-10-22T11:25:46.543 に答える