Причина, по которой это не работает, заключается в том, что вы помечаете входы как отключенные.Отключенные входные данные не реагируют на некоторые события, и похоже, что одним из них является двойной щелчок.
Кроме того, как писал @Royson, getElementsByClassName()
возвращает список из нескольких элементов.Если вы хотите добавить прослушиватель событий для всех из них, у вас есть 2 варианта:
Наилучший IMO, если это возможно, это присоединить его при создании элементов в функции list_tasks()
:
let input = document.createElement("input");
input.value = task_array[i];
input.classList.add("record");
input.disabled = true;
input.addEventListener("dblclick", editTask); // <--- here
container.appendChild(input);
Если это невозможно из-за недоступности областей, вы просто зацикливаетесь на результате getElementsByClassName()
:
Array.from(document.getElementsByClassName("record")).forEach(el => el.addEventListener("dblclick", editTask));
Редактировать: В спецификации сказано, чтособытия "щелчка" должны быть отключены на отключенном входе.Несмотря на то, что двойной щелчок не указан напрямую, я предполагаю, что это также подразумевается как щелчок, или он требует включения, чтобы он мог поймать два быстрых.https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#enabling-and-disabling-form-controls%3A-the-disabled-attribute