Ext.pulsante metodo click()

ExtJS 4.1.

C’è qualcosa come Ext.button.click(); metodo su Ext.pulsante di classe?

È possibile programmically “fare clic su” pulsante con un metodo?

  • Scusate se la sua una domanda stupida, ma sei sicuro di stare usando ExtJS 1.1? E ‘ solo che ExtJS 2 non è supportato per molto tempo, quindi sembra strano che si sta utilizzando 1.1;
  • Oh, mi dispiace, 4.1 del corso.
  • Non può credere ad un evento popolare, non è parte di questo quadro! Si è conclusa con imbarazzante button.getEl().dom.click()

 

9 Replies
  1. 24

    O se si dispone di un MVC struttura si può sparare l’evento click del pulsante, e se si sta ascoltando per caso nel tuo controller ed è associata una funzione che verrà chiamato.

    button.fireEvent('click', button);
    • Quando si utilizza il gestore, invece di fare clic su ascoltatore, non sarà in grado di fireEvent(‘click’) su questo componente, l’evento non viene eseguito. Quindi il modo migliore è di non utilizzare il gestore, ma utilizzare fare clic su ascoltatore + button.fireEvent('click'); per simulare clicking.
    • Che è di destra. È sempre “cleaner” per utilizzare gli ascoltatori, a mio parere.
    • Solo una CRONACA questo non fa scattare il metodo del gestore per qualche motivo. Se il metodo del gestore è parte del pulsante config.
    • è l’evento click sollevato ancora quando il pulsante è disabilitato? Perché ti costringe a prova disabili proprietà per avviare la funzione associata…
    • Sarà ancora licenziato sì.
    • grazie s.webbandit..questo è il motivo per cui fireclick non era a lavorare come la maggior parte delle persone che utilizzano gestore invece di ascoltatore.
    • Se si utilizza handler invece di un click evento, è possibile utilizzare button.handler().

  2. 10

    L’ultima risposta su questo forum, potrebbe darvi informazioni più dettagliate su come si può fare
    qui sono

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

    da –
    http://www.sencha.com/forum/showthread.php?37772-Solved-Programmatically-click-an-Ext.Button

    • Non pensate che la vostra collegati sencha thread del forum è effettivo (anno 2008). Ma l’idea di chiamare la click() su un elemento del DOM è bello!
    • Che cosa è dom.click(); ? Dove eas è tken da?
  3. 6

    ExtJS 4.2.1

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

    funziona per me.

    • Questa soluzione funziona anche per ExtJS 6.5.1
  4. 2

    In caso di pulsanti utilizzando il gestore, è possibile chiamare direttamente la funzione del pulsante.

    Considerando button è un Ext JS componente, è possibile utilizzare:

       button.handler(button); 

    o se si vuole raggiungere una funzione di evento “clic”:

       button.listeners.click(button);

    Che anche il lavoro a chiamata diversi eventi del tasto.

    • button.handler(); funziona bene
  5. 2

    In quanto ne avevo bisogno per molti pulsanti, è stato più facile implementare un override sul pulsante di classe, che aggiunge la funzione di clic:

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

    Dopo questa sostituzione è stata aggiunta la base di codice seguente funziona come un fascino:

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

    A differenza di fireEvent o fireHandler, questo funziona con tutti i tipi di pulsanti, non importa se si dispone di un evento click o un gestore, o se sono i bottoni dove cliccato il pulsante deve essere marcata come premuto anche.

  6. 1

    Se è necessario eseguire il “gestore” del pulsante, basta eseguire questo (testato con ExtJS 4.2)

    button.fireHandler()
  7. 0

    Nessuna delle altre risposte lavorato per me, ma ho trovato qualcosa di più semplice credo :

    var button=Ext.get('the_id_div');
    button.dom.click();

Lascia un commento