web-dev-qa-db-fra.com

Méthode click () du bouton ext.

ExtJS 4.1.

Existe-t-il quelque chose comme la méthode Ext.button.click(); sur la classe Ext.button?

Est-il possible de "cliquer" par programme sur un bouton avec une seule méthode?

17
s.webbandit

Ou si vous avez une structure MVC, vous pouvez déclencher l'événement click du bouton, et si vous écoutez l'événement dans votre contrôleur et avez une fonction associée, il sera appelé.

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

La dernière réponse sur ce forum pourrait vous donner plus d'informations sur la façon dont vous pouvez le faire ici, ils sont-

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

10
MimiEAM

ExtJS 4.2.1

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

travaille pour moi.

6
yzorg

Dans le cas de boutons utilisant un gestionnaire, vous pouvez appeler directement la fonction de bouton.

Étant donné que button est un composant Ext JS, vous pouvez utiliser:

   button.handler(button); 

ou si vous souhaitez accéder à une fonction d'événement 'clic':

   button.listeners.click(button);

Cela fonctionnerait également pour appeler différents événements de bouton.

2
Baris Cicek

Comme j'en avais besoin pour de nombreux boutons, il était plus facile d'implémenter un remplacement sur la classe de bouton, ce qui ajoute une fonction de clic:

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

Une fois ce remplacement ajouté à la base de code, ce qui suit fonctionne comme un charme:

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

Contrairement à fireEvent ou fireHandler, cela fonctionnera avec toutes sortes de boutons - qu'ils aient un événement de clic ou un gestionnaire, ou qu'ils soient des boutons à bascule où le bouton cliqué doit être marqué comme pressé également.

2
Alexander

Si vous devez exécuter le "gestionnaire" du bouton, exécutez-le simplement (testé avec ExtJS 4.2)

button.fireHandler()
1
estemendoza

Aucune des autres réponses n'a fonctionné pour moi, mais j'ai trouvé quelque chose de plus simple je pense:

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

Si vous voulez le faire dans vos scripts de test, jetez un œil à ma bibliothèque Ext.ux.Test . Si vous en avez besoin pour autre chose, je vous suggère de reconsidérer votre approche.

0
Alex Tokarev