extjs - Ext. Botón click() método
extjs4.1 (9)
Como lo necesitaba para muchos botones, fue más fácil implementar una anulación en la clase de botones, que agrega una función de clic:
Ext.define(''Ext.override.Button'',{
override:''Ext.button.Button'',
click:function() {
this.getEl().dom.click();
}
})
Después de agregar este reemplazo a la base del código, lo siguiente funciona como un encanto:
Ext.getCmp("MyButton").click()
A diferencia de fireEvent o fireHandler, esto funcionará con todo tipo de botones, sin importar si tienen un evento de clic o un controlador, o si son botones de alternar donde el botón pulsado debe marcarse como presionado también.
ExtJS 4.1.
¿Hay algo como Ext.button.click();
método en la clase Ext.button?
¿Es posible "hacer clic" en un botón programáticamente con un método?
En el caso de que los botones utilicen el controlador, puede llamar directamente a la función de botón.
Considerando que el button
es un componente Ext JS, puedes usar:
button.handler(button);
o si quieres llegar a una función de evento ''clic'':
button.listeners.click(button);
Eso también funcionaría para llamar a diferentes eventos de botón.
ExtJS 4.2.1
Ext.get(''component-id-of-extjs-button'').el.dom.click();
Ext.get(''toggle-button2'').el.dom.click();
funciona para mi.
La última respuesta en este foro podría brindarle más información sobre cómo puede hacer eso aquí:
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();
de - http://www.sencha.com/forum/showthread.php?37772-Solved-Programmatically-click-an-Ext.Button
Ninguna de las otras respuestas funcionó para mí, pero creo que encontré algo más simple:
var button=Ext.get(''the_id_div'');
button.dom.click();
O si tiene una estructura MVC, puede disparar el evento de clic del botón, y si está escuchando el evento en su controlador y tiene una función asociada, se llamará.
button.fireEvent(''click'', button);
Si desea hacer esto en sus scripts de prueba, eche un vistazo a mi biblioteca Ext.ux.Test . Si lo necesita para algo más, le sugiero que reconsidere su enfoque.
Si necesita ejecutar el "controlador" del botón, simplemente ejecute este (probado con ExtJS 4.2)
button.fireHandler()
document.getElementById("someButtonId").click();