Compare commits
3 Commits
2d3c6ea55f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3f039d4eef | |||
| abed02fdc2 | |||
| 6c71321076 |
39
app.js
39
app.js
@@ -1,25 +1,58 @@
|
||||
// Что нам нужно для работы кнопки Отметить выполнение?
|
||||
// 1. Найти все кнопки отметить выполнение.
|
||||
// 2. На каждую кнопку повесить слушатель события клик(нажатие мышью)
|
||||
// 3. Внутри слушателя события выполнить логику выполнения привычки - вызвать функцию markHabitDone
|
||||
// 4. Перерисовать интерфейс
|
||||
|
||||
const HabitTrackerApp = {
|
||||
elements: {
|
||||
habitGrid: null,
|
||||
addHabitForm: null,
|
||||
addHabbitButton: null
|
||||
addHabbitButton: null,
|
||||
habbitDoneButtons: [],
|
||||
},
|
||||
|
||||
init: function() {
|
||||
this.loadElements();
|
||||
this.render();
|
||||
this.loadDynamicElements();
|
||||
this.setupEventListeners();
|
||||
},
|
||||
|
||||
setupEventListeners: function() {
|
||||
this.elements.addHabbitButton.addEventListener('click', () => {
|
||||
this.elements.addHabitForm.style.display = 'block';
|
||||
//this.elements.addHabitForm.style.display = 'block';
|
||||
});
|
||||
|
||||
this.elements.habbitDoneButtons.forEach(
|
||||
button => {
|
||||
return button.addEventListener('click', (event) => {
|
||||
const cardId = event.target.closest('.habit-card').dataset.habitId;
|
||||
// разобраться почему не находит привычку
|
||||
HabitManager.markHabitDone(cardId);
|
||||
HabitManager.saveToLocalStorage();
|
||||
this.init();
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
// пройти циклом по habbitDoneButtons. На каждый элемент массива
|
||||
// добавить addEventListener по клику.
|
||||
// и в обработчике события вывести console.log
|
||||
},
|
||||
|
||||
loadElements: function() {
|
||||
this.elements.habitGrid = document.getElementById('habits-grid');
|
||||
this.elements.addHabitForm = document.getElementById('add-habit-form');
|
||||
this.elements.addHabbitButton = document.getElementById('add-habbit-button');
|
||||
setTimeout(() => {
|
||||
this.elements.habbitDoneButtons = document.querySelectorAll('.button--primary');
|
||||
}, 1000);
|
||||
|
||||
},
|
||||
|
||||
loadDynamicElements: function() {
|
||||
this.elements.habbitDoneButtons = document.querySelectorAll('.button--primary');
|
||||
},
|
||||
|
||||
render: function() {
|
||||
@@ -62,7 +95,9 @@ HabitTrackerApp.loadFromLocalStorage = function() {
|
||||
|
||||
if (HabitManager.habits.length == 0) {
|
||||
HabitManager.createHabit('Учить js', 'Писать не менее 1000000000 строк кода в день', 8);
|
||||
HabitManager.saveToLocalStorage();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
@@ -16,7 +16,7 @@ const HabitManager = {
|
||||
|
||||
HabitManager.createHabit = function (name, description, targetCount = 1) {
|
||||
const habit = {
|
||||
id: Math.random(),
|
||||
id: Math.floor(Math.random() * 100000, 10000),
|
||||
name: name,
|
||||
description: description,
|
||||
targetCount: targetCount,
|
||||
@@ -31,6 +31,7 @@ HabitManager.createHabit = function (name, description, targetCount = 1) {
|
||||
}
|
||||
|
||||
HabitManager.markHabitDone = function (habitId) {
|
||||
console.log(this.habits);
|
||||
const habit = this.habits.find(h => h.id === habitId);
|
||||
|
||||
if (!habit) {
|
||||
|
||||
Reference in New Issue
Block a user