测试代码如下
Ext.define('app.view.new.List', {
alternateClassName: 'newList',
extend: 'app.view.util.MyList',
requires: ['app.view.new.Info'],
xtype: 'newList',
config: {
store: 'newList',
listeners: {
itemtaphold: function(list) {
console.log(11);
},
itemtouchend: function(list) {
console.log(22);
},
itemtap: function(list, index, target, record, e, eOpts) {
console.log(33);
},
itemsingletap: function(list) {
console.log(44);
}
},
itemTpl: new Ext.XTemplate('<div class="left w20"><div class="img" style="background: url({litpic}) no-repeat center;background-size: 100%;"></div></div>', '<div class="right w80"><div class="row">{title}</div><div class="row grayF">{time}</div></div>')
}
});
测试结果:
当按键长按时事件触发顺序依次为:itemtaphold -》 按键松开之后 -》 itemtouchend -》 itemtap -》 itemsingletap
当按键轻点时事件触发顺序依次为:itemtouchend -》 itemtap -》 itemsingletap
总结:
itemtouchend,itemtap,itemsingletap事件必然触发
itemtaphold事件只在长按时触发
如果需要同时监控长按和轻触事件,需要加入判断参数来防止事件误触发。