2011-04-22 6 views

Respuesta

10

¿Funcionaría si nombrara su función anónima? Además, puede obtener una referencia al botón de la llamada al método, por lo que no necesita usar Ext.getCmp().

Ext.getCmp('myBtn').on('click', function handleClick(button, event){ 
    alert('Alert this message only in first click.'); 
    button.removeListener('click', handleClick); 
}) 
+2

Uso su solución, a corto plazo de removeListener -> button.un ('click', handleClick); – diewland

5

Intente trabajar con una función nombrada en lugar de una función anónima.

var myfunction = function() { 

    alert('Alert this message only in first click.'); 
    Ext.getCmp('myBtn').un('click', myfunction); 
} 

Ext.getCmp('myBtn').on('click',myfunction); 
+0

trabajo también. Gracias por la respuesta rápida. – diewland

25

Si desea un evento que se active exactamente una vez, utilice la siguiente: -

Ext.getCmp('myBtn').on('click', function(){ 
    alert('Alert this message only in first click.'); 
}, null, {single: true}); 

El {single:true} hará que esta función anónima que se ejecute una sola vez después de enviado, por lo que este debe cumplir con su requerimiento .

Nota: El null es en realidad el cambiador de alcance útil. Es posible que necesite esto para cambiar el alcance de la función anónima

Salida ExtJS Eventos @http://docs.sencha.com/extjs/5.0.0/core_concepts/events.html

También puedes ver las opciones de eventos @http://docs-origin.sencha.com/extjs/5.0.0/apidocs/#!/api/Ext.mixin.Observable-method-on

felices ExtJS :)

+0

Gracias por el estilo ExtJS :) – diewland

Cuestiones relacionadas