Size: a a a

2021 July 07

В

Виктория in JS Liberty
нужно смотреть контекст использования
источник

В

Влад in JS Liberty
источник

В

Виктория in JS Liberty
так что угодно может быть ведь
источник

В

Влад in JS Liberty
источник

В

Виталий in JS Liberty
const buildText = (name, { value }) => {
 const processedValue = value.trim();
 if (processedValue === '') {
   const i = document.createElement('i');
   i.innerHTML = name;
   return i;
 }
 return document.createTextNode(value);
};

const buildForm = (element, name, state, rerender) => {
 const form = document.createElement('form');
 const input = document.createElement('input');
 input.type = 'text';
 input.name = name;
 input.setAttribute('value', state.value);
 form.appendChild(input);
 const submit = document.createElement('input');
 submit.type = 'submit';
 submit.value = 'Save';
 form.appendChild(submit);

 form.addEventListener('submit', (e) => {
   e.preventDefault();
   const formData = new FormData(e.target);
   state.value = formData.get(name);
   state.mode = 'text';
   rerender(element, name, state);
 });

 return { form, input, submit };
};

const render = (element, name, state) => {
 element.innerHTML = '';
 switch (state.mode) {
   case 'form': {
     const result = buildForm(element, name, state, render);
     element.appendChild(result.form);
     result.input.select();
     break;
   }
   case 'text':
     element.appendChild(buildText(name, state));
     break;
   default:
     throw new Error(`Unknown mode: ${state.mode}`);
 }
};

const handle = (element, name, state) => () => {
 if (state.mode === 'text') {
   state.mode = 'form';
   render(element, name, state);
 }
};


export default () => {
 const elements = document.querySelectorAll('[data-editable-target]');
 elements.forEach((element) => {
   const state = {
     mode: 'text',
     value: '',
   };
   const name = element.dataset.editableTarget;
   element.addEventListener('click', handle(element, name, state));
 });
};
источник

В

Виктория in JS Liberty
ТЫ ПОНИМАЕШЬ что не всегда К МЕСТУ эти ебаные гифки
источник

В

Виктория in JS Liberty
и сейчас они мешаются блять
источник

В

Виктория in JS Liberty
пиздец
источник

В

Виктория in JS Liberty
в том плане что текста много
источник

В

Виктория in JS Liberty
можешь рассказать что тут происходит?
источник

В

Виктория in JS Liberty
ну хотя мне уже примерно понятно
источник

Е

Евдоким in JS Liberty
Кажется Влад получил по шарам.
источник

В

Виталий in JS Liberty
Да.
Есть на странице 2 дива.
По клику на одном из них, он меняется на форму, и инпутом и сабмитом. По сабминту в див как текс контент попадает введенное в инпут значение (форма улетает из ДОМа и прописівтся новій див).
источник

В

Виктория in JS Liberty
А, ну вот теперь понятно зачем здесь анонимную стрелку возвращают
источник

В

Виктория in JS Liberty
Вот так бы сразу
источник

В

Виктория in JS Liberty
Анонимная стрелочная функция назначается в качестве обработчика события клика
источник

В

Виктория in JS Liberty
решили обработчик в отдельную функцию вынести
источник

p

persona x grata in JS Liberty
Частичное применение
источник

В

Виктория in JS Liberty
нет
источник

В

Виктория in JS Liberty
поэтому и пародия
источник