Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.11.2010, 12:00
Интересующийся
Отправить личное сообщение для Reiter Посмотреть профиль Найти все сообщения от Reiter
 
Регистрация: 18.09.2010
Сообщений: 10

Тест с ветвлением
Всем привет! Прежде чем задать основной вопрос, хотелось бы сначала ввести преамбулу.
Я начал изучать JavaScript недавно - купил книгу Дэвида Макфарланда "JavaScript. Подробное руководство" ("JavaScript. Missing Manual") прочитал её, и как раз в универе дали задание написать тест с ветвлением. Узнав об архитектуре веб-страниц, синтаксисе, методах и прочих базисах, появилось желание написать тест способом, который опишу чуть ниже. Но так как опыта в создании javascript'ов ещё довольно мало, возникают сомнения в возможности реализации данной задачи. Соответственно вопрос: возможно ли сделать тест таким способом, или нет?
Теперь об описании способа.
1) Имеет страница, содержащая несколько div'ов: question_1, question_2_1, question_2_2, question_3_1, question_3_2, question_3_3 и question_3_4.
2) В каждом div'e расположен свой вопрос, на котором расположено по два ответа при помощи radio button со значениями 1 и 0: Yes и No соответственно.
3) При загрузке страницы изначально показывается только первый div с id=question_1.
4) Под блоками имеет кнопка, назовем её Next.
5) В question_1 выбираем radio button в соответствии с нужным значением.
6) При нажатии на кнопку Next выполняется следующее условие:
if (значение radio button'a 1) {блок question_1 скрывается и блок question_2_1 показывается} else {блок question_1 скрывается и блок question_2_2 показывается}.
7) После того как нужный блок из так называемого уровня 2 загрузился, при нажатии на кнопку Next идет проверка какой блок сейчас показывается и какое значение radio button'a из него извлекается:
if (блок question_2_1 показывается) {if (radiobutton 1) {question_3_1 показывается, а question_2_1 скрывается} else {question_3_2 показывается, а question_2_1 скрывается}
} else if (блок question_2_2 показывается) {if (radio button =1) {question_3_3 показывается, а question_2_2 скрывается} else {question_3_4 показывается, question_2_2 скрывается}}
}
Имеет ли эта идея право на жизнь?
P.S. Может у меня где-то есть промахи в разработке теста.
P.S.S. Рассматривал также способ с загрузкой каждый раз новой страницы, но мне он не особо понравился, есть желание сделать тест используя только одну страницу.
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2010, 12:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от Reiter
Имеет ли эта идея право на жизнь?
Разумеется.
Ответить с цитированием
  #3 (permalink)  
Старый 20.11.2010, 12:24
Интересующийся
Отправить личное сообщение для Reiter Посмотреть профиль Найти все сообщения от Reiter
 
Регистрация: 18.09.2010
Сообщений: 10

Гм, а если так спрошу: возможно ли реализовать тест предложенным мною способом?
Ответить с цитированием
  #4 (permalink)  
Старый 20.11.2010, 12:46
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Reiter
возможно ли реализовать тест предложенным мною способом?
Разумеется.
Ответить с цитированием
  #5 (permalink)  
Старый 20.11.2010, 13:01
Интересующийся
Отправить личное сообщение для Reiter Посмотреть профиль Найти все сообщения от Reiter
 
Регистрация: 18.09.2010
Сообщений: 10

Крутотенюшки-крутота! Держите плюсики в карму.
Ответить с цитированием
  #6 (permalink)  
Старый 20.11.2010, 14:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от Reiter
возможно ли реализовать тест предложенным мною способом?
Это не лучший способ реализации в хтмл + цсс + js...
Ответить с цитированием
  #7 (permalink)  
Старый 20.11.2010, 15:01
Интересующийся
Отправить личное сообщение для Reiter Посмотреть профиль Найти все сообщения от Reiter
 
Регистрация: 18.09.2010
Сообщений: 10

ksa, да, я с вами согласен, это не лучший способ. Возможно, по достижении большего опыта в данной сфере, я пойму как сделать более лучшую реализацию данной задачи.
Ответить с цитированием
  #8 (permalink)  
Старый 20.11.2010, 18:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Reiter, нужно учиться алгоритмизировать сразу. Представь что количество элементов на каждом уровне не известно... Количество вложений тоже...
Т.о. весь твой "алгоритм" никуда не годится...
Ответить с цитированием
  #9 (permalink)  
Старый 23.11.2010, 12:55
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Согласен с ksa но ведь в 9 классе нас всех тож подобным грузили. и если у него есть свой вариант решения теста и он рабочий при этом-то пусть реализует.
Ответить с цитированием
  #10 (permalink)  
Старый 08.12.2010, 14:02
Интересующийся
Отправить личное сообщение для Reiter Посмотреть профиль Найти все сообщения от Reiter
 
Регистрация: 18.09.2010
Сообщений: 10

Изначальную идею пришлось подкорректировать. Блоки уже расположены на странице. Все, кроме начального блока изначально спрятаны. Каждый блок "появляется" по мере "движения" по дереву, то есть по мере прохождения теста, отвечая на вопросы "Yes" и "No".
Привожу частичку скрипта:
$(document).ready(function(evt) {
  $('.effect').click(function(evt) {
				var container = $(this).parents('questions');
				targetID = (container.length==1) ? '#question_1' : '#question_2_1';
				var target = $(targetID);
				var action = $(this).attr('title');
				switch (action) {
					case 'yes_1' :
							target.fadeIn();
							break;
					};
				});
});


Вопрос: как сделать так, что бы при нажатии на "Yes" не всплывал блок при нажатии на "No", то есть, как деактивировать функцию в блоке?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раздел Тест знаний mycoding Сайт Javascript.ru 0 17.11.2010 17:55
Тест на знание ЯваСкрипта Slawaq Оффтопик 0 19.05.2010 23:30
тест magistr_bender Оффтопик 44 25.10.2008 19:28
Проблема обработки скрипта в Mozilla ermugard Firefox/Mozilla 2 18.06.2008 17:52
Новый тест Илья Кантор Сайт Javascript.ru 11 08.04.2008 18:04