2015-09-03 2 views
-2

Мне нужна помощь, чтобы понять, как писать шоу/скрыть javascript, где есть несколько уровней элементов для отображения/скрытия.Javascript Show/Hide на нескольких уровнях глубоко

Надеюсь, это не сложно объяснить.

Как работает наша система токов, добавлен класс CSS для ввода, например, переключатель или флажок. Класс CSS будет «шоу-question2»

элемент, который должен быть переключен на «показать/скрыть» дается класс «showable-question2»

Функция Javascript прослушивает событие щелчка, спички класс CSS «шоу- {0} с элементом, который имеет соответствующий„showable- {0}“и переключает его видимость

МОЙ вОПРОС:.

Например, если у вас есть вопрос, что в зависимости от того, как вы ответите на него, отобразит/спрячет новый вопрос.

Но если вы ответите на этот второй вопрос, значит, третий вопрос «показан», я столкнулся с проблемой.

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

Чтобы достичь моей цели, нужно ли этим элементам встраиваться в Html?

EDIT

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

Итак, если на вопрос 1 отвечает ответ из списка, который затем вызывает второй вопрос, второй вопрос в этом случае отображается конечному пользователю.

Таким образом, ваш обзор вопроса 2 о том, как ответить на вопрос 1.

Вопрос 2 может также иметь иждивенцев, поэтому, если пользователь отвечает на вопрос 2 с определенной опцией, третий вопрос станет видимым.

Вопрос 3, является зависимым от вопроса 2.

Теперь, если пользователь решит, что они изменили свое мнение, и выбрать другой ответ на вопрос 1, то не будет никакого требования теперь вопрос 2, и он будет скрыт.

Проблема заключается в том, что вопрос 1 не переключает видимость Вопроса 3, который останется видимым и имеет отношение только к Вопросу 2, который был скрыт и когда больше не требуется.

+3

Небольшой код будет очень полезно;) –

+1

показать, что вы сделали – guradio

+1

«Но если, как вы ответите, что второй вопрос означает, что третий вопрос„показано“, я столкнулся с проблемой . "<------- ????? –

ответ

1

Почему бы вам не изменить свой javascript, чтобы реализовать поведение, которое вы ищете? В принципе, вы хотите реализовать последовательность состояний с некоторыми конкретными правилами о переходе состояния, которые вам нужно ввести в функцию. Ваша модель - массив [{question_number, answer, answer_eval}]. answer_eval может быть, например, good, bad. Ваше состояние - массив [{question number, show}].show может быть, например, display или hide.

Когда вы нажимаете на вопрос, вы получаете номер этого вопроса, у вас есть текущее состояние и модель в ваших массивах, и вы хотите решить следующее состояние. Напишите функцию, которая делает именно это.

поэтому функция f :: (event, state, model) -> (state, model) , которые могут быть определены вокруг этих линий:

  • событие: нажмите

    1. получить номер вопроса
    2. показывают, что допрашивать
    3. скрыть все остальные вопросы с answer_eval NOT good (что должно охватывать скрытие вашего третьего q uestion)
    4. скрыть все другие зависимые вопросы (которые должны охватывать скрывая ваш второй вопрос)
    5. модели обновления и состояния массивов
  • событие: оценить ответ

    1. получить номер вопроса
    2. расчет answer_eval
    3. good => показать зависимый вопрос (ы)
    4. плохие =>ваше поведение здесь
    5. модели обновления и государственные массивы

Я не понял, что именно было поведение, которое вы хотите после клика, но принцип всегда будет то же самое , Если вы можете указать его, вы можете написать его.

Надежда, что помогает