web-dev-qa-db-ja.com

Ext.button click()メソッド

ExtJS 4.1。

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

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

17
s.webbandit

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

button.fireEvent('click', button);
24
Johan Haest

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

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();

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

10
MimiEAM

ExtJS 4.2.1

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

私のために働く。

6
yzorg

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

buttonがExt JSコンポーネントであることを考慮して、以下を使用できます。

   button.handler(button); 

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

   button.listeners.click(button);

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

2
Baris Cicek

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

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

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

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

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

2
Alexander

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

button.fireHandler()
1
estemendoza

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

var button=Ext.get('the_id_div');
button.dom.click();
0
Vindic
 document.getElementById("someButtonId").click(); 
0
Niranjan

テストスクリプトでこれを行う場合は、my Ext.ux.Test library を参照してください。他の何かのためにそれが必要な場合は、あなたのアプローチを再考することをお勧めします。

0
Alex Tokarev