ExtJS4.1。
Ext.button.click();
Ext.buttonクラスにメソッドのようなものはありますか?
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();
から-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();
私のために働きます。
ハンドラーを使用するボタンの場合、ボタンの関数を直接呼び出すことができます。
Ext JSコンポーネントであると考えるbutton
と、次のものを使用できます。
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()
テストスクリプトでこれを実行したい場合は、私のExt.ux.Testライブラリを見てください。他の目的で必要な場合は、アプローチを再検討することをお勧めします。
他の答えはどれも私にはうまくいきませんでしたが、私はもっと単純なものを見つけました:
var button=Ext.get('the_id_div');
button.dom.click();
document.getElementById("someButtonId").click();