Вот рабочий Пример .
Инкапсулируйте ваши данные в div , который вы хотите редактировать. Дайте атрибут 'data-name' к этому div с тем же именем данных.Захватите событие itemdoubletap и найдите фактическую цель.В этом примере, поскольку данные были ' title ', они дали то же имя атрибуту div
Ext.create('Ext.List', {
fullscreen: true,
itemTpl: '<div data-name="title">{title}</div>',
data: [
{ title: 'Item 1' },
{ title: 'Item 2' },
{ title: 'Item 3' },
{ title: 'Item 4' }
],
listeners: {
itemdoubletap: function (list, index, target, record, e, eOpts) {
var actualTarget = e.getTarget('div');
if (actualTarget.dataset.name == 'title') {
actualTarget.innerHTML = '';
var textfield = document.createElement("INPUT");
textfield.setAttribute("type", "text");
textfield.style.width = '100%',
textfield.record = record;
textfield.value = record.data[actualTarget.dataset.name];
textfield.onblur = function () {
if (record.data[actualTarget.dataset.name] != this.value) {
record.data[actualTarget.dataset.name] = this.value;
}
this.parentNode.innerHTML = this.value;
}
actualTarget.appendChild(textfield);
textfield.focus();
}
}
}
}