Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.05.2015, 17:55
Новичок на форуме
Отправить личное сообщение для varName Посмотреть профиль Найти все сообщения от varName
 
Регистрация: 16.05.2015
Сообщений: 4

Перезапись текста в div(диалог)
Доброго времени суток,
столкнулся с необходимостью реализации системы коротких диалогов между 2 персонажами на дивах/спанах. Алгоритм следующий -

1) Есть 2 кнопки, одна актив(1), вторая скрытая(2).
2) После нажатия актив кнопки(1) выводится див с текстом(1), скрытая кнопка(2) переходит в активное состояние, 1я скрывается.
3) После нажатия актив кнопки(2) выводится див с текстом(2), первый див закрывается. Актив кнопки снова меняются.
4) После нажатия актив кнопки(1) текст в диве(1) должен заменяться на заданный(т.е. происходить обновление дива). Количество обновлений(т.е. реплик героев) должно задаваться, как и сам текст, в коде.

Пробовал заменять текст в дивах при помощи метода текст $('#item1').text('Новая Строка 2'); но нужного результата добиться не удалось

Само переключение между дивами как тут Закрытие и открытие дива по клику

Подскажите, пожалуйста, способ для перезаписи текста в дивах/спанах, согласно описаному алгоритму, и переключение между активными кнопками.

Последний раз редактировалось varName, 16.05.2015 в 18:43.
Ответить с цитированием
  #2 (permalink)  
Старый 16.05.2015, 18:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

varName,
а когда реплики закончатся, тогда что?
Ответить с цитированием
  #3 (permalink)  
Старый 16.05.2015, 18:41
Новичок на форуме
Отправить личное сообщение для varName Посмотреть профиль Найти все сообщения от varName
 
Регистрация: 16.05.2015
Сообщений: 4

Сообщение от рони Посмотреть сообщение
varName,
а когда реплики закончатся, тогда что?
Тогда скрываются обе кнопки (и дива с.о)
Ответить с цитированием
  #4 (permalink)  
Старый 16.05.2015, 19:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

varName,

<!DOCTYPE html>
<html>
<head>
  <title></title>
<meta charset="utf-8">
<style type="text/css">
div.tratata, span.tratata{
  display: none;
}
div.tratata.active, span.tratata.active{
  display:  block;
}
span.tratata{
  cursor: pointer;
}
.tratata.first {
  background-color: #FF9900;
}
.tratata.last{
  background-color: #339900;
}

</style>
<script type="text/javascript">
window.onload = function() {
    var spans = document.querySelectorAll('span.tratata'), divs = document.querySelectorAll('div.tratata'), arr = ['один','два','три','четыре','пять'] ;
    var click = function (c) {
            var a = 1 - c ;
        return function () {
            this.classList.remove('active');
            divs[a].classList.remove('active');
            if(!arr.length) return;
            spans[a].classList.add('active');
            divs[c].classList.add('active');
            divs[c].innerHTML = arr.shift();
            }
    };
    spans[0].addEventListener("click", click(0), false);
    spans[1].addEventListener("click", click(1), false);
 }
</script>
</head>

<body>
<span class="tratata active">1</span>
<span class="tratata">2</span>
<div class="tratata first"></div>
<div class="tratata last"></div>
</body>
</html>

Последний раз редактировалось рони, 16.05.2015 в 21:53.
Ответить с цитированием
  #5 (permalink)  
Старый 16.05.2015, 21:23
Новичок на форуме
Отправить личное сообщение для varName Посмотреть профиль Найти все сообщения от varName
 
Регистрация: 16.05.2015
Сообщений: 4

Сообщение от рони Посмотреть сообщение
varName,

<!DOCTYPE html>
<html>
<head>
  <title></title>
<meta charset="utf-8">
<style type="text/css">
div, span{
  display: none;
}
div.active, span.active{
  display:  block;
}
span{
  cursor: pointer;
}
.first {
  background-color: #FF9900;
}
.last{
  background-color: #339900;
}

</style>
<script type="text/javascript">
window.onload = function() {
    var spans = document.querySelectorAll('span'), divs = document.querySelectorAll('div'), arr = ['один','два','три','четыре','пять'] ;
    var click = function (c) {
            var a = 1 - c ;
        return function () {
            this.classList.remove('active');
            divs[a].classList.remove('active');
            if(!arr.length) return;
            spans[a].classList.add('active');
            divs[c].classList.add('active');
            divs[c].innerHTML = arr.shift();
            }
    };
    spans[0].addEventListener("click", click(0), false);
    spans[1].addEventListener("click", click(1), false);
 }
</script>
</head>

<body>
<span class="active">1</span>
<span class="">2</span>
<div class="first"></div>
<div class="last"></div>
</body>
</html>
Спасибо! А можно применять свойства не ко всем спанам и дивам на странице, а только к группе, участвующей в диалогах?
Ответить с цитированием
  #6 (permalink)  
Старый 16.05.2015, 21:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

varName,
вы что-нибудь о классах в css или поиске элементов, читали?
Ответить с цитированием
  #7 (permalink)  
Старый 16.05.2015, 21:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

varName,
смотрите пост 4 снова добавлен class tratata надеюсь элементов с таким классом у вас нет
Ответить с цитированием
  #8 (permalink)  
Старый 16.05.2015, 23:58
Новичок на форуме
Отправить личное сообщение для varName Посмотреть профиль Найти все сообщения от varName
 
Регистрация: 16.05.2015
Сообщений: 4

Спасибо огромное, выручили!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическая "прокрутка" текста ChazAshley Общие вопросы Javascript 11 16.03.2014 20:17
Если размера div не хватает для текста Гробовщик (X)HTML/CSS 7 19.07.2013 00:44
Как запретить отмену выделения текста от клика мышью? Маэстро Internet Explorer 0 03.04.2012 21:21
Чудеса математики js при padding borovik Элементы интерфейса 6 09.07.2011 22:02
Получение позиции текста по координатам traa Events/DOM/Window 20 08.02.2011 14:19