Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2017, 13:01   #1
NataHamster
Пользователь
 
Регистрация: 27.06.2013
Сообщений: 22
По умолчанию createElement(“span”) сбрасывается при добавлении текста

Дорогие форумчане! Имеется такой пользовательский интерфейс.

<textarea> - туда юзер заносит текст, который отображается в <div class="text">

<select id="part"> - цвет текста частично - позволяет, чтобы юзер выделил часть текста <div class="text"> и установил цвет - метод createElement("span")

Однако, если в textarea юзер внесет изменения, createElement("span") сбрасывается, с точки зрения юзера - цвет всего текста снова становится черным (по умолчанию)

Что можно сделать для сохранения createElement("span")
https://jsfiddle.net/Nata_Hamster/jbs3wyfv/48/
Заранее спасибо.
NataHamster вне форума Ответить с цитированием
Старый 22.11.2017, 13:26   #2
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Много букв, нужен Асс, что разобраться быстро. Предположу, когда меняете textarea, то <div class="text"> полностью переписывается. Кстати, у меня в Опере вообще не работает ваш fiddle. И, кстати-2, не пользуйте id для стилизации.
СтудПом вне форума Ответить с цитированием
Старый 22.11.2017, 16:55   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

У тебя логически неверно составлен алгоритм.
Код:
меняется текст - выводим текст
меняется цвет и есть выделенный кусок - создаем цветной спан
— эти ветви конфликтуют друг с другом.
Тут нужен объект, который отслеживает изменения. Он должен хранить отдельно текст и отдельно покрашенные области и уже из этого собирать html для вывода на экран. Поля формы должны изменять объект и триггерить перерисовку.
Такой паттерн программирования называется MVC, разделение приложения логические составляющие. Моделью выступает объект, который хранит состояния; Вьюхой — поля формы и вывод текста; Контроллером — функции изменения состояния модели и подготовка данных для вывода.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 23.11.2017, 10:10   #4
NataHamster
Пользователь
 
Регистрация: 27.06.2013
Сообщений: 22
По умолчанию

Да, пожалуй Вы правы. Как раз в планах изучить Angular. Большое спасибо.
NataHamster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При изменении счетчика должен изменится span m3xTa1nes JavaScript, Ajax 0 01.05.2017 15:49
Сбрасывается состояние мыши при программном перемещении курсора. Drag&drop Yuran Общие вопросы Delphi 1 26.07.2016 14:15
document.createElement usa-1500 JavaScript, Ajax 5 28.05.2015 02:10
сбрасывается фильтр при перезагрузке страницы Mick_20 PHP 5 13.12.2012 18:28
Как пропарсив HTML страничку занести результат тегов <span></span> в label? Ramal Работа с сетью в Delphi 4 27.10.2009 03:54