Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 22.11.2017, 14:01   #1
NataHamster
Пользователь
 
Регистрация: 27.06.2013
Сообщений: 22
Репутация: 10
По умолчанию 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, 14:26   #2
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 354
Репутация: 114
По умолчанию

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

У тебя логически неверно составлен алгоритм.
Код:

меняется текст - выводим текст
меняется цвет и есть выделенный кусок - создаем цветной спан

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


05:44.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru