Size: a a a

2020 May 05

JA

Javad Anvarovich in pro.js
let searchBox = document.getElementById('search');
let myForm = document.getElementById('my-form');
let newItem = document.getElementById('items');
let msgBox = document.querySelector('.msg');
let bgEffect = document.querySelector('body');

bgEffect.addEventListener('mousemove', mouseColor);
searchBox.addEventListener('keyup', searchList);
myForm.addEventListener('submit', addTask);
newItem.addEventListener('click', delItem);
//newItem.addEventListener('click', editItem);

function mouseColor (e) {
   bgEffect.style.background = rgb(${e.clientX}, ${e.clientY}, 40);
}

let todos =[];

function addTask (e) {
   e.preventDefault();
   let textArea = document.getElementById('inpVal').value;
   
   if (textArea === '') {

       msgBox.classList.add('msg')
       msgBox.innerHTML = 'Add task please';
   }
   else{
       msgBox.classList.add('msg')
       msgBox.innerHTML = 'Successfuly Added';

       let newTask = document.createElement('li');
       newTask.classList.add('liStyle');
       newTask.appendChild(document.createTextNode(textArea));
       newItem.appendChild(newTask);

       let delBtn = document.createElement('button');
       delBtn.className = 'btnStyle delete';
       delBtn.appendChild(document.createTextNode('X'));
       newTask.appendChild(delBtn);

       let editBtn = document.createElement('button');
       editBtn.className = 'editStyle editBtn';
       editBtn.appendChild(document.createTextNode('Edit'));
       newTask.appendChild(editBtn);

       todos.push(textArea);
       console.log(todos);
       myForm.reset();
   }  
   // saving to local storage
   localStorage.setItem('My Todo List', JSON.stringify(todos));
   sessionStorage.setItem('My Todo List', JSON.stringify(todos));

   setTimeout(() => msgBox.remove(), 3000);
}

function delItem (e) {
   if (e.target.classList.contains('delete')) {
       let newTask = e.target.parentElement;
       newItem.removeChild(newTask);
   }
}

function searchList (e) {
   // convert to lower case
   let text = e.target.value.toLowerCase();
   // get the list
   let itemList = newItem.getElementsByTagName('li');
   // convert to array
   Array.from(itemList).forEach(function (list) {
       let itemName = list.firstChild.textContent;
       if (itemName.toLocaleLowerCase().indexOf(text) != -1) {
           list.style.display = 'block';
       }
       else {
           list.style.display = 'none';
       }
   });
}
источник

JA

Javad Anvarovich in pro.js
то что я смог созадть за месяц
источник

НС

Никита Сковорода... in pro.js
Никита Сковорода
Сейчас покажу, сек
Ха, я проверил
@piterden и правда, ведёт себя как одна область видимости
источник

НС

Никита Сковорода... in pro.js
То есть переменные из второго блока протекают в первый.
источник

DE

Denis Efremov in pro.js
Да я в ченжлоге читал
источник

S

Snake in pro.js
Никита Сковорода
Эм. Блоки создают разные области видимости.
Не совсем так, блоки создают блоки. В JS всего две области видимости. Блоки относятся к локальной, но у каждого блока эта локальная область своя собственная.
источник

DE

Denis Efremov in pro.js
Ща вспомнил
источник

В

Виктория in pro.js
Виктория
Осталось понять почему
Все, я поняла
источник

НС

Никита Сковорода... in pro.js
Snake
Не совсем так, блоки создают блоки. В JS всего две области видимости. Блоки относятся к локальной, но у каждого блока эта локальная область своя собственная.
Ну мы о лете говорим.

Но нет, это не ведёт себя как разные блоки. Тогда бы переменные не протекали между разными командами
источник

DE

Denis Efremov in pro.js
Виктория
Все, я поняла
Пацаны, расходимся
источник

S

Snake in pro.js
Никита Сковорода
Ну мы о лете говорим.

Но нет, это не ведёт себя как разные блоки. Тогда бы переменные не протекали между разными командами
В каком смысле "Протекают между разными командами"?
источник

НС

Никита Сковорода... in pro.js
Это даже не ведёт себя как вложенные блоки.
источник

DE

Denis Efremov in pro.js
Он пробрасывает леты
источник

DE

Denis Efremov in pro.js
Только леты
источник

НС

Никита Сковорода... in pro.js
Snake
В каком смысле "Протекают между разными командами"?
Ну если в одном куске кода в консоли определить переменную через лет, она доступна в следующем

Если бы они вели себя как отдельные блоки, это было бы не так
источник

НС

Никита Сковорода... in pro.js
Denis Efremov
Только леты
Конст же тоже
источник

DE

Denis Efremov in pro.js
И дает перелетывать #новослово
источник

DE

Denis Efremov in pro.js
Без ошибки
источник

НС

Никита Сковорода... in pro.js
А вот конст нельзя переопределять
источник

DE

Denis Efremov in pro.js
Никита Сковорода
Конст же тоже
Переконстывать не дает #новослово
источник