Size: a a a

2021 March 18

NV

Nick Volkov in Frontend_ru
Beibars Nygyzbaev
Дана таблица. По нажатию на ячейку в ней появляется инпут с содержимым этой ячейки и кнопка сохранить. Можно поредактировать текст в инпуте, сохранить - и текст ячейки поменяется. - это сама задача, тут я столкнулся с некоторыми проблемами, когда я нажимал на ячейку все у меня появляется, и текстовый инпут и кнопка. но если нажать еще раз то появляется еще, так что я решил что скорее всего надо отвзять событие после нажатия на ячейку которое создает мне инпут и кнопку и кладет в ячейку. окей все работает пока что как надо, если инпут открыт то при втором нажатии не появляется еще один инпут. но после того как я ввожу цифру и нажимаю на кнопку, соответственно иннерХТМЛ ячейки меняется, и при втором нажатии на ячейку не привязывается функция первая которая создавала инпут и баттон и клала в ячейку. если привязать такую функцию то она выполняется сразу, то есть инпут и кнопка не уходят вовсе.
покажи весь код
источник

BN

Beibars Nygyzbaev in Frontend_ru
Nick Volkov
покажи весь код
var td = document.getElementsByTagName('td');
console.log(td[0]);
for (var i = 0; i < td.length; i++) {
   td[i].addEventListener('click', func1);
   function func1(e) {
       var text = this.innerHTML;
       this.innerHTML = '';
       var input = document.createElement('input');
       input.setAttribute('type', 'text');
       input.value = text;
       this.appendChild(input);
       if (this.firstElementChild.tagName.toLocaleLowerCase() == 'input') {
           this.removeEventListener('click', func1);
       }

       var button = document.createElement('button');
       button.innerHTML = 'Click';
       this.appendChild(button);
       button.addEventListener('click', func2);

       function func2() {
           this.parentElement.innerHTML = input.value;

       }

   }

}
источник

BN

Beibars Nygyzbaev in Frontend_ru
источник

BN

Beibars Nygyzbaev in Frontend_ru
вот таблица
источник

BN

Beibars Nygyzbaev in Frontend_ru
нажимаю
источник

BN

Beibars Nygyzbaev in Frontend_ru
и при втором нажатии она не реагирует
источник

BN

Beibars Nygyzbaev in Frontend_ru
источник

BN

Beibars Nygyzbaev in Frontend_ru
вот поменял , и дальше не нажимется
источник

NV

Nick Volkov in Frontend_ru
Beibars Nygyzbaev
Дана таблица. По нажатию на ячейку в ней появляется инпут с содержимым этой ячейки и кнопка сохранить. Можно поредактировать текст в инпуте, сохранить - и текст ячейки поменяется. - это сама задача, тут я столкнулся с некоторыми проблемами, когда я нажимал на ячейку все у меня появляется, и текстовый инпут и кнопка. но если нажать еще раз то появляется еще, так что я решил что скорее всего надо отвзять событие после нажатия на ячейку которое создает мне инпут и кнопку и кладет в ячейку. окей все работает пока что как надо, если инпут открыт то при втором нажатии не появляется еще один инпут. но после того как я ввожу цифру и нажимаю на кнопку, соответственно иннерХТМЛ ячейки меняется, и при втором нажатии на ячейку не привязывается функция первая которая создавала инпут и баттон и клала в ячейку. если привязать такую функцию то она выполняется сразу, то есть инпут и кнопка не уходят вовсе.
Ты пытаешься повесить всю логику на клик, хотя тебе надо ещё change слушать на инпуте
источник

BN

Beibars Nygyzbaev in Frontend_ru
Nick Volkov
Ты пытаешься повесить всю логику на клик, хотя тебе надо ещё change слушать на инпуте
поподробнее можно
источник

BN

Beibars Nygyzbaev in Frontend_ru
change это после ввода что то в инпут и после потери фокуса как  яя понял
источник

NV

Nick Volkov in Frontend_ru
Parent element у тебя живёт до следующего клика по кнопке
источник

NV

Nick Volkov in Frontend_ru
В который ты проставляешь значение
источник

BN

Beibars Nygyzbaev in Frontend_ru
Nick Volkov
Parent element у тебя живёт до следующего клика по кнопке
сделал
источник

BN

Beibars Nygyzbaev in Frontend_ru
с помощью change. но кнопка осталась без дела, да и ладно)
источник

NV

Nick Volkov in Frontend_ru
Кнопка просто стирает инпут и заменяет содержимое контейнера
источник

NV

Nick Volkov in Frontend_ru
По этому кнопку лучше просто вынести отдельно
источник

NV

Nick Volkov in Frontend_ru
Рядом с таблицей
источник

BN

Beibars Nygyzbaev in Frontend_ru
Nick Volkov
Кнопка просто стирает инпут и заменяет содержимое контейнера
хорошо спасибо
источник

P

Portulak in Frontend_ru
Beibars Nygyzbaev
хорошо спасибо
А не проще ли сразу хранить инпут в таблице задизейбленный и застилизованный под таблицу? и при клике раздизейблить и работать с данными, при клике на кнопу - дизейблить обратно, а данные сразу хранить в value input'a
источник