Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   велосипед для редактора строк (https://javascript.ru/forum/misc/49868-velosiped-dlya-redaktora-strok.html)

nverv 01.09.2014 15:01

велосипед для редактора строк
 
наверняка это миллион раз уже изобретено
простейший редактор текста

надо чтобы список DOM-элементов отображал содержимое элементов массива
тоесть визуализация массива элементов

так чтобы при редактировании элементов через интерфейс документа массив элементов синхронизировался

не могу понять как это сделать чтобы не было перерисовки DOM-элементов при обновлении массива элементов

то есть чтобы выбирая любой элемент в списке DOM-элементов всегда выбирался соответствующий элемент в массиве элементов
то есть чтобы сохранялось соответствие порядкового номера обоих массивов

задача простая и вроде понятно выразил


---------------------------
еще раз -


есть массив в котором элементы - например строки
этот массив надо визуализировать на экране в виде списка строк
полученные элементы интерфейса содержат некий код для функционирования редактора
редактор добавляет удаляет элементы массива
изменения сразу происходят на экране, меняется DOM
и при этом изменения вносятся в массив - тоесть происходит синхронизация

я понимаю что если просто заново отобразить все элементы массива на экране то редактор заработает
но не могу понять как это сделать чтобы не надо было перерисовывать DOM

Viral 01.09.2014 15:03

сто пардонов за оффтоп.. вы часом не сеошник?

skrudjmakdak 01.09.2014 15:05

Цитата:

Сообщение от nverv (Сообщение 328424)
задача простая и вроде понятно выразил

а я вот честно говоря нихера не понял))

nverv 01.09.2014 16:03

Цитата:

Сообщение от Viral (Сообщение 328425)
сто пардонов за оффтоп.. вы часом не сеошник?

первая практика после знакомства с js
простейший редактор текста делаю

skrudjmakdak 01.09.2014 16:10

есть куча готовых редакторов
http://www.tinymce.com/
http://nytimes.github.io/ice/demo/
http://ace.c9.io/#nav=about

можно еще покопаться)

nverv 01.09.2014 16:33

сам хочу понять алгоритм
ума не хватит читать чужой сложный кот

skrudjmakdak 01.09.2014 16:39

Цитата:

Сообщение от nverv (Сообщение 328443)
сам хочу понять алгоритм

открываешь исходники и смотришь))

nverv 01.09.2014 16:41

Цитата:

Сообщение от skrudjmakdak (Сообщение 328446)
открываешь исходники и смотришь))

спасибо
твои советы похоже бесполезны
мне все время кажется что на этом форуме много пидарасов ))

tsigel 01.09.2014 16:42

Когда выводите текст в редакторе - связываейте его не с конкретным html элементом, а с текстовой нодой внутри него.

tsigel 01.09.2014 16:47

Цитата:

есть массив в котором элементы - например строки
этот массив надо визуализировать на экране в виде списка строк
полученные элементы интерфейса содержат некий код для функционирования редактора
редактор добавляет удаляет элементы массива
изменения сразу происходят на экране, меняется DOM
и при этом изменения вносятся в массив - тоесть происходит синхронизация
Можно сделать карту массива, например:
arr = ["string1", "string2", "string3"];
map = {
   0: textNode1,
   1: textNode2,
   3: textNode3
}


Тогда отображение изменения второго элемента массива будет так:

arr[1] = "trololo";
map[1].textContent = arr[1];


Часовой пояс GMT +3, время: 13:59.