ExtJS 4.1。
Ext.buttonクラスにExt.button.click();
メソッドのようなものはありますか?
1つの方法でプログラムによってボタンを「クリック」することは可能ですか?
または、MVC構造がある場合は、ボタンのクリックイベントを発生させることができます。コントローラーでイベントをリッスンしていて、関連する関数がある場合は、呼び出されます。
button.fireEvent('click', button);
このフォーラムの最後の回答は、あなたがここでそれを行う方法についてより多くの洞察を与えるかもしれません
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
ExtJS 4.2.1
Ext.get('component-id-of-extjs-button').el.dom.click();
Ext.get('toggle-button2').el.dom.click();
私のために働く。
ハンドラーを使用するボタンの場合、ボタンの関数を直接呼び出すことができます。
button
がExt JSコンポーネントであることを考慮して、以下を使用できます。
button.handler(button);
または、イベント「クリック」の機能に到達したい場合:
button.listeners.click(button);
これは、さまざまなボタンイベントを呼び出すためにも機能します。
多くのボタンに必要だったので、クリック関数を追加するボタンクラスにオーバーライドを実装する方が簡単でした。
Ext.define('Ext.override.Button',{
override:'Ext.button.Button',
click:function() {
this.getEl().dom.click();
}
})
このオーバーライドがコードベースに追加された後、以下はチャームのように機能します。
Ext.getCmp("MyButton").click()
FireEventやfireHandlerとは異なり、クリックイベントやハンドラーがあるかどうか、またはクリックされたボタンも押されているとマークする必要があるトグルボタンであるかどうかに関係なく、これはすべての種類のボタンで機能します。
ボタンの「ハンドラー」を実行する必要がある場合は、これを実行するだけです(ExtJS 4.2でテスト済み)。
button.fireHandler()
他の答えはどれも私にとってはうまくいきませんでしたが、私が思う簡単なものを見つけました:
var button=Ext.get('the_id_div');
button.dom.click();
document.getElementById("someButtonId").click();
テストスクリプトでこれを行う場合は、my Ext.ux.Test library を参照してください。他の何かのためにそれが必要な場合は、あなたのアプローチを再考することをお勧めします。