2011-02-24 13 views
7

Estoy tratando de crear en el panel js ext y consiguió el éxito en eso, pero también quiero añadir evento click con estaAgregar Haga clic en Panel de Evento con ExtJS

 { 
      xtype: 'panel', 
      flex: 1, 
      x: 10, 
      y: parseInt(panelCreation[i - 1].y) + 
       parseInt(panelCreation[i -1].height) + 10, 
      width: twidth, 
      height: theight, 
      layout: 'absolute'     
     } 

no quiero añadir evento click separado Deseo agregar con este código como después del diseño: coma y evento de suma absoluta por favor ayúdenme en esto.

Respuesta

23

Usted puede agregar en el siguiente para un evento de clic:

listeners: { 
    'render': function(panel) { 
     panel.body.on('click', function() { 
      alert('onclick'); 
     }); 
    } 
} 

EDIT: para obtener la coordenadas X e Y del evento click se puede cambiar el controlador de eventos Click de la siguiente manera ...

panel.body.on('click', function(e) { 
    alert('X: ' + e.getPageX()); 
    alert('Y: ' + e.getPageY()); 
}); 
+0

Ya he encontrado que pero de todos modos Gracias Kirk Woll por su respuesta que ya está bien de trabajo. –

+0

@Jaitsu, no quiero publicar otra pregunta, pero ¿cómo puedo obtener coordenadas de clic si este evento? – k102

+0

@ k102 He editado mi respuesta – JamesHalsall

3
new Ext.Panel({ 
    title: 'The Clickable Panel', 
    listeners: { 
     render: function(p) { 
      // Append the Panel to the click handler's argument list. 
      p.getEl().on('click', handlePanelClick.createDelegate(null, [p], true)); 
     }, 
     single: true // Remove the listener after first invocation 
    } 
}); 
+0

Amigos, pueden por favor publicar los códigos para el gráfico de líneas en el que se puede hacer clic. –

+0

Encuentro esta respuesta mejor que la aceptada porque también activa el evento cuando el clic se realiza en el encabezado. – Aebsubis

2

No lo es, en mi opinión, una forma mucho más sencilla de hacer esto ... (tomado directamente de la docs). Para obtener más información sobre cómo agregar un oyente, vea here. (Ext JS 4)

new Ext.panel.Panel({ 
    width: 400, 
    height: 200, 
    dockedItems: [{ 
     xtype: 'toolbar' 
    }], 
    listeners: { 
     click: { 
      element: 'el', //bind to the underlying el property on the panel 
      fn: function(){ console.log('click el'); } 
     }, 
     dblclick: { 
      element: 'body', //bind to the underlying body property on the panel 
      fn: function(){ console.log('dblclick body'); } 
     } 
    } 
}); 
Cuestiones relacionadas