我对extjs很新。我点击div后想调用onclick事件, 以下是代码。
请帮助,提前致谢。
var resultTemplate = new Ext.XTemplate(
'<tpl for=".">',
'<div class="list-item" id={value}>',
'<i class="folder-icon"> </i>',
'{value}',
'</div>',
'</tpl>'
);
Ext.define('abc.view.xyz', {
layout: {
type: 'border',
padding: 5
},
extend: 'Ext.Panel',
alias: 'widget.infraTab',
id: 'infraTab',
margin: '10 10 10 10',
border: true,
items: Ext.create('Ext.view.View', {
store: store,
tpl: resultTemplate
})
});
我希望点击类"list-item"
的div及其ID的值。
答案 0 :(得分:5)
您应该可以使用itemclick侦听器:
Ext.create('Ext.view.View', {
store: store,
tpl: resultTemplate,
itemSelector: '.list-item',
listeners: {
itemclick: function(view, record, item, index, e, eOpts) {
alert(record.get('value'));
}
}
});
这是展示其用途的Sencha Fiddle。
答案 1 :(得分:0)
如果不使用View
,则itemSelector不可用,在这种情况下,您可以执行以下操作:
afterRender: function () {
this.callParent(arguments);
this.el.select('.item', true)
.elements
.forEach((item) =>
item.on('click', (e, element) => {
this.fireEvent('itemclick');
}
)
);
}