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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 02.12.2014, 09:47   #1
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
Печаль Многоуровневый if/else

Я совсем начинаю (
Читаю учебник по JavaScript. Хочу сделать пробную работу, чтобы в зависимости от нажатия "1" или "2" менялась картинка и описание, но браузер никак не реагирует на скрипт.

Код HTML:
...
<head>
...
	<script src="script.js"></script>
</head>
<body onload="greetings();">
...	
<div class="story">
		<img id="story" src="story/scene0.jpg" /> <br />
		Выберите, что вы сделаете?
	</div>
	<form class="form" name="backToMain" onload="changeScene(option);">
		<input type="button" value="1" onclick="changeScene(1);" />
		<input type="button" value="2" onclick="changeScene(2);" />
	</form>
...
</body>
...
Код:
...
function changeScene(option) {
var message = "";
if (curScene == 0) {
curScene = 1;
message = "Итак, вы отправляетесь в путешествие"; 
}
else if (curscene == 1) {
if (decision == 1) {
curScene = 2;
message = "Описание картинки" ; 
}
else {
curScene = 3;
message = "Другое описание" ;
}
}
document.getElementById("story").src = "story/scene" + curScene + ".jpg";
alert(message);
}
...
Картинки сохранены в папке story и идут в порядке от 0 до 3-х.

Что не так? )))

Последний раз редактировалось Stilet; 02.12.2014 в 10:36.
Bender1000 вне форума Ответить с цитированием
Старый 02.12.2014, 10:00   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,755
По умолчанию

Смотрите ошибки исполнения скрипта.
Код:
document.getElementById("story").sr c = "story/scene" + curScene + ".jpg";
Как минимум пробел в src убрать.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 02.12.2014, 10:02   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 14,762
По умолчанию

Этот пробел форум добавил, потому что ТС не слышал о теге CODE.
Arigato вне форума Ответить с цитированием
Старый 02.12.2014, 10:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Я поправил оформление.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2014, 14:55   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
<form class="form" name="backToMain" onload="changeScene(option);">
тут option неопределен

Код:
function changeScene(option) {
  var message = "";
  if (curScene == 0) { // curScene не определено
    curScene = 1;
    message = "Итак, вы отправляетесь в путешествие"; 
  } else if (curscene == 1) { // curscene не определен, js - регистрозависимый язык
    if (decision == 1) { // decision не определен
      curScene = 2;
      message = "Описание картинки" ; 
    } else {
      curScene = 3;
      message = "Другое описание" ;
    }
  }
  document.getElementById("story").src = "story/scene" + curScene + ".jpg";
  alert(message);
}
Итого, первая поломка при загрузке страницы (формы).
Вторая — при на второй строчке функции при нажатии.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 04.12.2014, 12:04   #6
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Итого, первая поломка при загрузке страницы (формы).
Вторая — при на второй строчке функции при нажатии.
Все равно не работает.
1. Определил начальный curScene
2. Установил option как decision.

Правильно ли я понимаю, что скрипт отталкивается от элемента decision, и в зависимости от того, равен он 1 или 2 - должен срабатывать тот или иной вариант сценария по if/else?

JS:
Код:
 var curScene = 0;

function changeScene(decision) {
var message = "";
if (curScene == 0) {
curScene = 1;
message = "Итак, вы отправляетесь в путешествие"; }
else if (curScene == 1) {
if (decision == 1) {
curScene = 2;
message = "Что тут за картинка?";}
else {
curScene = 3;
message = "Эту картинку я тоже не знаю" ;}
document.getElementById("story").src = "story/scene" + curScene + ".jpg";
alert(message);
}
}
HTML:
Код:
<form class="form" name="backToMain" onload="changeScene(decision);">
		<input type="button" id="decision1" value="1" onclick="changeScene(1)" />
		<input type="button" id="decision2" value="2" onclick="changeScene(2)" />
	</form>
Что не так? ((
Bender1000 вне форума Ответить с цитированием
Старый 04.12.2014, 13:05   #7
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Цитата:
Все равно не работает.
В консоли ошибки какие?
^-.-^ Клавогонки.ру - набирай скорость!
Fenex вне форума Ответить с цитированием
Старый 04.12.2014, 13:21   #8
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
В консоли ошибки какие?
Всё заработало, кроме одного: программа не выдает curScene1 сразу, хотя в скрипте прописано, что если curScene==0, то curScene==1, а curScene==0 указана как глобальная переменная.

Вопрос: почему скрипт сразу не воспринимает curScene==0 и не принимает curScene==1
?
Bender1000 вне форума Ответить с цитированием
Старый 04.12.2014, 13:29   #9
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,755
По умолчанию

Цитата:
Все равно не работает.
Всё работает именно так как вы это запрограммировали, я проверил инфа 100%.
Код:
function changeScene(decision) {
	var message = "";
	if (curScene == 0) {
		curScene = 1;
		message = "Итак, вы отправляетесь в путешествие"; 
	}else if (curScene == 1) {
		if (decision == 1) {
			curScene = 2;
			message = "Что тут за картинка?";
    	        }else {
			curScene = 3;
			message = "Эту картинку я тоже не знаю" ;
		}
		document.getElementById("story").src = "https://www.google.com/images/errors/logo_sm_" + curScene + ".png";
		alert(message);
	}
}
При загрузке не выводится сообщение "Итак, вы отправляетесь в путешествие" тк в else ветка никогда не попадёт в первом вызове. При нажатии кнопки 1 усё работает, картинка меняется, сообщение выводится 1 раз, тк опять же никуда не попдёшь после установки в 3.

Форматируйте код и будет сразу видно.
Стрелок-охотник

Последний раз редактировалось mv28jam; 04.12.2014 в 13:41.
mv28jam вне форума Ответить с цитированием
Старый 04.12.2014, 15:48   #10
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

отформатировать можно тут, к слову
http://jsbeautifier.org/
^-.-^ Клавогонки.ру - набирай скорость!
Fenex вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многоуровневый нумерованный список Word2010 КарандашТМ Microsoft Office Word 3 13.09.2014 17:29
Многоуровневый список в ворде. NewLamer&Programer Помощь студентам 1 28.06.2013 08:31
многоуровневый комбобокс на основе ExtJS sashonk JavaScript, Ajax 0 02.09.2010 15:58
Многоуровневый заголовок (Delphi) VadEr Помощь студентам 1 02.03.2010 14:54
Многоуровневый список и стили в Word 2007 CaptainNemo Microsoft Office Word 12 08.06.2009 22:45


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS