2012-01-09 8 views
5

¿Cómo agregaría un evento de clic a cada etiqueta de enlace en este otro que construyendo en onclick=.... en XTemplate?¿Cómo adjuntas los eventos de clics a los elementos de la plantilla ExtJS?

new Ext.XTemplate(
    '<ul>', 
    '<tpl for="."><li><a href="#{anchor}">{text}</a></li></tpl>', 
    '</ul>' 
).overwrite('someElement', [ 
    { text: 'Click me', anchor: '1' }, 
    { text: 'No, click me', anchor: '2'} 
]); 
+0

¿Puede proporcionar más código? Depende del control. – Krzysztof

Respuesta

7

La respuesta corta es que no. En su lugar, debe utilizar delegación de eventos:

Ext.get('someElement').on('click', function(event, target) { 
    console.log(target); 
}, null, {delegate: 'a'}); 

Esto tiene 2 ventajas principales:

  1. Sólo es necesario enlazar un sólo oyente
  2. su funcionamiento será el de modificar dinámicamente el contenido
+0

De hecho tuve que usar Ext.select porque estaba trabajando fuera de un selector de CSS en lugar de un ID de nodo único, pero el principio funcionó. –

+0

¿Cómo puedo agregar un evento si uso tpl en el panel, no dataview? – digz6666

Cuestiones relacionadas