-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
95 lines (88 loc) · 2.8 KB
/
script.js
File metadata and controls
95 lines (88 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
const menu = [
{
title: 'Введение',
expanded: true,
children: [
{
title: 'Введение в курс',
link: 'https://ulearn.me',
highlighted: true
},
{
title: 'Практика',
link: 'https://ulearn.me'
},
{
title: 'Ресурсы для изучения',
link: 'https://ulearn.me'
}
]
},
{
title: 'Бызовый синтаксис',
score: '0/100',
children: [
{
title: 'Теория',
link: 'https://ulearn.me'
},
{
title: 'Практика',
link: 'https://ulearn.me',
score: '0/100'
}
]
},
{
title: 'Структуры данных',
score: '0/100',
children: [
{
title: 'Теороия',
link: 'https://ulearn.me'
},
{
title: 'Практика',
link: 'https://ulearn.me',
score: '0/100'
}
]
}
];
const menuContainer = document.querySelector('.menu');
function renderMenu(menu, menuContainer) {
menuContainer.innerHTML = '';
for (let task of menu) {
const menuItem = document.createElement('li');
menuItem.classList.add('menu__task');
const link = document.createElement('a');
link.textContent = task.title;
link.setAttribute('href', '#');
if (task.score !== undefined) {
link.setAttribute('data-score', task.score);
}
menuItem.appendChild(link);
const submenuContainer = document.createElement('ul');
submenuContainer.classList.add('menu__submenu');
submenuContainer.classList.add('_collapsed');
menuItem.addEventListener('click', () => openSubmenu(submenuContainer));
menuItem.appendChild(submenuContainer);
for (let subtask of task.children) {
const submenuItem = document.createElement('li');
submenuItem.classList.add('menu__subtask');
submenuContainer.appendChild(submenuItem);
const subLink = document.createElement('a');
subLink.textContent = subtask.title;
subLink.setAttribute('href', subtask.link);
if (subtask.score !== undefined) {
subLink.setAttribute('data-score', subtask.score);
}
submenuItem.appendChild(subLink);
}
menuContainer.appendChild(menuItem);
}
}
function openSubmenu(submenu) {
submenu.classList.toggle('_collapsed');
}
renderMenu(menu, menuContainer);