2012-05-31 13 views
5

Estoy intentando manejar eventos en la misma lista, el primero es el evento itemtap y el otro es el evento onItemDisclosure.Al disparar el evento Evento de descubrimiento, el evento itemtap se desencadena

Cuando toco en la flecha, se desencadena el evento onItemDisclosure y se ejecuta el controlador, sin embargo, el itemtap también se activa y, una vez ejecutado el controlador onItemDisclosure, el manejador de elementos de item se ejecuta a su vez.

¿Cómo puedo solucionar esto?

Vista:

Ext.define('myapp.view.listview', { 
    requires: [ 'myapp.model.listmodel'], 
    extend: 'Ext.List', 
    alias:'widget.listview', 
    id : 'listview', 
    fullscreen: true, 
config: { 

    iconCls: 'list', 


    title : 'List', 
    onItemDisclosure: function() { 
    alert('ok') 

    },    

    store:'ListView', 
    itemTpl:'{title}' 


    } 
}); 

Código de control:

Ext.define('myapp.controller.Main', { 
    extend: 'Ext.app.Controller', 
    views : ['listview'], 
    config : { 


    refs:{ 

     list:'#listview' 


    }, 
    control :{ 



     listview:{ 
      itemtap:'display', 
      onItemDisclosure : 'disclosure' 
     } 






    } 
}, 


display:function(){ 
    alert('tap') 
}, 




disclosure:function(){ 
    alert('disclosure'); 
}, 

Respuesta

0

onItemDisclosure es una propiedad de Ext.List - no un evento. En el controlador control, usamos eventos. Por lo tanto, aquí necesitará revelar evento similar al evento "itemtap". Compruebe esto link.

+0

Gracias por corregirme, pero los dos eventos se disparan cuando hago clic en la flecha. – user1203861

+0

Esta respuesta no aborda la pregunta; moosekebab's does – JoshuaDavid

9

Debe detener el evento itemtap que sigue burbujeando. Primero necesitas los argumentos para la llamada a la función, luego en el argumento del evento que llamas al stopEvent().

disclosure: function(list, record, node, index, event, eOpts) { 
    console.log('disclose');   

    event.stopEvent(); 
}, 
+2

¿Por qué esta no es la respuesta seleccionada?!? – JoshuaDavid

Cuestiones relacionadas