extjs extjs4.1

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.



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