Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.11.2018, 18:51
Новичок на форуме
Отправить личное сообщение для Andrea1111111111 Посмотреть профиль Найти все сообщения от Andrea1111111111
 
Регистрация: 12.06.2017
Сообщений: 2

Графические компоненты
Добрый день. Нужна помощь. Имеется код
function Menu(options) {
  var elem;

  function getElem() {
    if (!elem) render();
    return elem;
  }

  function render() {
    elem = document.createElement('div');
    elem.className = "menu";

    var titleElem = document.createElement('span');
    elem.appendChild(titleElem);
    titleElem.className = "title";
    titleElem.textContent = options.title;

    elem.onmousedown = function() {
      return false;
    };

    elem.onclick = function(event) {
      if (event.target.closest('.title')) {
        toggle();
      }
    }

  }

  function renderItems() {
    var items = options.items || [];
    var list = document.createElement('ul');
    items.forEach(function(item) {
      var li = document.createElement('li');
      li.textContent = item;
      list.appendChild(li);
    });
    elem.appendChild(list);
  }

  function open() {
    if (!elem.querySelector('ul')) {
      renderItems();
    }
    elem.classList.add('open');
  };

  function close() {
    elem.classList.remove('open');
  };

  function toggle() {
    if (elem.classList.contains('open')) close();
    else open();
  };
  
  var input=document.createElement('input');
    input.type = 'text';
    input.id = "ff1";
    document.body.appendChild(input);

    function add(){
    input = document.getElementById('ff1');
    var mas = [];
    mas.push(input.value + ","); //добавляем значение инпута в массив
    document.body.innerHTML +=mas[0];
  }

  this.getElem = getElem;
  this.toggle = toggle;
  this.close = close;
  this.open = open;
  this.add = add;
}

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="style.css">
  <script src="https://cdn.polyfill.io/v1/polyfill.js?features=Element.prototype.closest"></script>
  <script src="menu.js"></script>
</head>

<body>

  <button onclick="menu.toggle()">menu.toggle()</button>
  <button onclick="menu.open()">menu.open()</button>
  <button onclick="menu.close()">menu.close()</button>
  <button onclick="menu.add()">menu.add()</button>

  <script>
    var menu = new Menu({
      title: "Сладости",
      items: [
        "Торт",
        "Пончик",
        "Пирожное",
        "Шоколадка",
        "Мороженое",
      ]
    });

    document.body.appendChild(menu.getElem());
  </script>

</body>

</html>


Необходимо добавить компоненту возможность добавлять и удалять сладости. Добавление осуществить через ввод в input названия сладости. Удалять последнюю добавленную сладость.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компоненты в layout=Table не растягивается по высоте на 100% khusamov ExtJS 2 13.02.2017 23:09
Какой фреймворк выбрать? нужно а) компоненты формы б) ajax подгрузка объектов ... plazzzm Библиотеки/Тулкиты/Фреймворки 5 05.02.2013 17:41
как нарисовать графические полосы? czp Общие вопросы Javascript 43 26.12.2011 15:33
JavaScript замена input type=checkbox,radio,select на графические ExeiL Элементы интерфейса 2 27.08.2010 13:09
Динамически создаваемые компоненты Drag&Drop BEER_HUNTER Элементы интерфейса 6 22.08.2008 13:32