en.javascript.info/archive/widget-tasks/5-tree-checkboxes/task.md
2015-02-21 14:58:02 +03:00

2 KiB
Raw Blame History

Дерево с чекбоксами

[importance 5]

Вы получили проект, в котором есть дерево с чекбоксами.

К сожалению, оно "кривое" -- некрасивое, плохо закодированное и с ошибками. Ваша задача -- сделать "как надо".

Образец:

[iframe src="source" height=400 link edit border=1]

Особенности работы:

  • При изначальном рисовании все элементы закрыты и не отмечены.
  • Установка отметки в чекбоксе раскрывает узел и отмечает все элементы под ним.
  • Снятие отметки из чекбокса -- снимает отметки из всех элементов под ним.

Требования к реализации:

  • Все данные для дерева (регионы) нужно хранить в JS. Как именно -- определяете вы сами. Можно в одном объекте, можно -- ещё как-то.
  • Программист, который делал этот код, сейчас недоступен. Ваша задача -- восстановить данные регионов из дерева примера.
  • Можно считать, что название региона всегда занимает только 1 строку.
  • Дерево должно легко работать с 1000 узлов (в примере их около 450).
  • Используйте минимум DOM-элементов.

Исходный документ содержит "образец" дерева.

[edit task src="source"/]

P.S. При получении данных из дерева-образца вам поможет JSON.stringify(объект). Он превратит объект в строку, которую можно положить в файл.