If you only want to do it on image tap you can check for the event in that listener.
Method 1
listeners : {
itemtap: function (list, index, item, record, senchaEvent) {
if (senchaEvent.event.target.nodeName == 'IMG') {
// Show next view
}
}
}
I used like this
Ext.create('Ext.List', {
itemCls : 'my-dataview-item',
id : 'myList',
itemTpl : '<div><img src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span></div>',
store : aroundStore,
listeners : {
itemtap: function (list, index, item, record, senchaEvent) {
if(senchaEvent.event.target.nodeName =='IMG') {
me.othersProfileImageClicked(record.data);
}
else
me.onMessageClickedInAround(list, record);
}
}
});
Update
listeners : {
itemtap: function (dataview,index,target,record,e,option) {
if (e.event.target.nodeName == 'IMG') {
// Show next view
}
}
}
Method 2
You can use event delegation, Like this
Ext.create('Ext.List', {
itemCls : 'my-dataview-item',
id : 'myList',
itemTpl : '<div><img src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span>',
store : aroundStore,,
listeners: [{
element: 'element',
delegate: 'img',
event: 'tap',
fn: function() {
alert('One!');
}
}
]
});