diff --git a/lesson1/JS/script.js b/lesson1/JS/script.js new file mode 100644 index 0000000..1b03c57 --- /dev/null +++ b/lesson1/JS/script.js @@ -0,0 +1,68 @@ +function Container(){ + this.id = ""; + this.className = ""; + this.htmlCode = ""; + +}; + +Container.prototype.render = function () { + return this.htmlCode; +}; + +Container.prototype.remove = function () { + delete this.htmlCode; +}; + +function Menu(my_id, my_class, my_items) { + Container.call(this); + this.id = my_id; + this.className = my_class; + this.items = my_items; +}; + +Menu.prototype.remove = function ( i = 0 ) { + var elem = document.getElementById(this.id); + elem.parentNode.removeChild(elem); +}; + +Menu.prototype = Object.create(Container.prototype); +Menu.prototype.constructor = Menu; +Menu.prototype.render = function () { + let result = '' + return result; + +}; + +function MenuItem(my_href, my_name, my_id) { + Container.call(this); + this.id = my_id; + this.className = "menu-item"; + this.href = my_href; + this.name = my_name; +}; + +MenuItem.prototype = Object.create(Container.prototype); +MenuItem.prototype.constructor = MenuItem; +MenuItem.prototype.render = function () { +return '
  • ' + this.name + '
  • '; +}; + +let m_item1 = new MenuItem("/", "Главная", 1); +let m_item2 = new MenuItem("/catalog", "Каталог", 2); +let m_item3 = new MenuItem("/gallery", "Галерея", 3); +let m_items = {0: m_item1, 1: m_item2, 2: m_item3}; + +let menu = new Menu("my_menu", "My_class", m_items); + +document.write(menu.render()); + + + + diff --git a/lesson1/index.html b/lesson1/index.html new file mode 100644 index 0000000..c42f5f3 --- /dev/null +++ b/lesson1/index.html @@ -0,0 +1,4 @@ +Урок 1 + + + \ No newline at end of file diff --git a/lesson2/JS/script.js b/lesson2/JS/script.js new file mode 100644 index 0000000..8a90d91 --- /dev/null +++ b/lesson2/JS/script.js @@ -0,0 +1,131 @@ +function Container(){ + this.id = ""; + this.className = ""; + this.htmlCode = ""; + +}; + +Container.prototype.render = function () { + return this.htmlCode; +}; + +Container.prototype.remove = function () { + let elem = document.getElementById(this.id); + elem.parentNode.removeChild(elem); + console.log(elem); +}; + +function Menu(my_id, my_class, my_items) { + Container.call(this); + this.id = my_id; + this.className = my_class; + this.items = my_items; +} +Menu.prototype = Object.create(Container.prototype); +Menu.prototype.constructor = Menu; +Menu.prototype.render = function () { + let result = '' + return result; + +}; + +function MenuItem(my_id, my_href, my_name) { + Container.call(this); + this.id = my_id; + this.className = "menu-item"; + this.href = my_href; + this.name = my_name; +} + +MenuItem.prototype = Object.create(Container.prototype); +MenuItem.prototype.constructor = MenuItem; +MenuItem.prototype.render = function () { +return '
  • ' + this.name + '
  • '; +}; + + +function SubMenu (my_id, my_class, my_items){ + Container.call(this); + this.id = my_id; + this.className = my_class; + this.items = my_items; +} +SubMenu.prototype = Object.create(Container.prototype); +SubMenu.prototype.constructor =SubMenu; +SubMenu.prototype.render = function(){ + let result = ''; + } else { + console.log(this.items[item]); + for (let subitem in this.items[item]){ + console.log(this.items[item][subitem]); + result += this.items[item][subitem].render(); + } + } + } + result += ''; + return result; +}; + +/* +let m_item1 = new MenuItem("1", "/", "Главная"); +let m_item2 = new MenuItem("2", "/catalog", "Каталог"); +let m_item3 = new MenuItem("3", "/gallery", "Галерея"); +let m_items = {0: m_item1, 1: m_item2, 2: m_item3}; +*/ + +//let menu = new Menu("my_menu", "menu_class", m_items); +//let submenu = new SubMenu("menu_main", "sub_menu", [m_items,menu]); +//console.log(submenu); +// document.write(submenu.render()); + +function fillMenuContents(xhr) { + let m_items = {}; + + if (xhr.readyState ==4) { + if (xhr.status == 200) { + let items = JSON.parse(xhr.responseText); + + for (let currentitem of items.menu_items){ + m_items[currentitem.title] = new MenuItem(currentitem.id ,currentitem.href, currentitem.title); + } + + let menu = new Menu("my_menu", "My_class", m_items); + let submenu = new SubMenu("menu_main", "sub_menu", [m_items,menu]); + document.write(submenu.render()); + } + } else { + alert("ошибка выполнения запроса!"); + } +}; + + +let xhr; + +if (window.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + if (window.overrideMimeType) { + xhr.overrideMimeType('application/json'); + } +} else if (window.ActiveXObject) { + xhr = new ActiveXObject('Microsoft.XMLHTTP'); +} + +if (!xhr) { + console.log("Невозможно создать запрос!"); +} + +xhr.onreadystatechange = function() { fillMenuContents(xhr); }; +xhr.ontimeout = function() {console.log("Превышего время ожидание запроса!");}; +xhr.open('GET', 'menu.json', true); +xhr.send(null); \ No newline at end of file diff --git a/lesson2/index.html b/lesson2/index.html new file mode 100644 index 0000000..a715855 --- /dev/null +++ b/lesson2/index.html @@ -0,0 +1,12 @@ + + + + + Урок 2. + + + + + + + \ No newline at end of file diff --git a/lesson2/menu.json b/lesson2/menu.json new file mode 100644 index 0000000..1a35010 --- /dev/null +++ b/lesson2/menu.json @@ -0,0 +1,19 @@ +{ + "menu_items": [ + { + "id": "1", + "href": "/", + "title": "Главная" + }, + { + "id": "2", + "href": "/catalogue", + "title": "Каталог" + }, + { + "id": "3", + "href": "/gallery", + "title": "Галлерея" + } + ] +} \ No newline at end of file