如何将 onclick 事件附加到 XTemplate 元素 extjs?
how to attach onclick event to XTemplate element extjs?
我是 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
})
});
我想要 div 和 class "list-item"
单击以及它的 id 的值。
您应该能够使用 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 演示它的用法。
当您 NOT 使用 View
时,itemSelector 不可用,在这种情况下,您可以执行以下操作:
afterRender: function () {
this.callParent(arguments);
this.el.select('.item', true)
.elements
.forEach((item) =>
item.on('click', (e, element) => {
this.fireEvent('itemclick');
}
)
);
}
我是 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
})
});
我想要 div 和 class "list-item"
单击以及它的 id 的值。
您应该能够使用 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 演示它的用法。
当您 NOT 使用 View
时,itemSelector 不可用,在这种情况下,您可以执行以下操作:
afterRender: function () {
this.callParent(arguments);
this.el.select('.item', true)
.elements
.forEach((item) =>
item.on('click', (e, element) => {
this.fireEvent('itemclick');
}
)
);
}