Javascript.RU

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

Как скрыть блоки с одинаковыми классами кроме того кторый не нужно скрывать?
Здравствуйте друзья, столкнулся с задачкой для решения которой у меня не хватает опыта.
Имеется сайт с системой тестирования, все тесты отображаются в личном кабинете пользователя в виде списка, когда пользователь выбирает тест для прохождения он нажимает кнопку «Начать тестирование» после чего открывается тест и собственно начинается сам процесс тестирования. Но все тесты которые находятся в данном списке остаются, то есть не скрываются. Как заставить с помощью JS скрыть все тесты кроме того который проходит пользователь?
Для начала прохождения теста пользователь нажимает кнопку с таким содержимым:
<input class="wpProQuiz_button" type="button" value="Начать тест" name="startQuiz">
Может как-то прикрутить onclick к кнопке “ Начать тест ” ?
HTML содержимое страницы:
<div class="activtest"></div>
<div class="activtest"> Данный тест был открыт </div>
<div class="activtest"></div>
<div class="activtest"></div>
<div class="activtest"></div>

Буду благодарен за любой ответ, спасибо друзья.
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2016, 12:23
Интересующийся
Отправить личное сообщение для Dydaevskiy Посмотреть профиль Найти все сообщения от Dydaevskiy
 
Регистрация: 21.11.2016
Сообщений: 17

Я не много продвинулся, как по клику дочернего элемента с class="wpProQuiz_button" скрыть при помощи JS все дивы которые находятся в id=rcl-tabs, кроме родителя (class="wpProQuiz_button") у которого class="activtest"?
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2016, 14:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Dydaevskiy
Но все тесты которые находятся в данном списке остаются, то есть не скрываются. Как заставить с помощью JS скрыть все тесты кроме того который проходит пользователь?
Зачем хранить все тесты на странице?
Подгружай только один, какой нужен. Остальные так путь и лежат на сервере...
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2016, 15:13
Интересующийся
Отправить личное сообщение для Dydaevskiy Посмотреть профиль Найти все сообщения от Dydaevskiy
 
Регистрация: 21.11.2016
Сообщений: 17

Дело в том что тестирование должно происходить в ЛК пользователя, и как следствие (нет возможности скрыть сайдбар панели ЛК) открытие теста так же должны быть в ЛК.
Уважаемый Ksa ksa, на данный момент вкурив не одну статью по JS картина происходящего (лично для меня) в корне изменилась как и требования к JS скрипту.
Чего необходимо добиться:
При не активном тесте, то есть отображается только список тестов имеются DIVы с классом activtest, при нажатии пользователем кнопки с классом wpProQuiz скрипту необходимо сделать следующее:
1)Найти ID прародительского DIVа того элемента по которому был произведен щелчок (в данном случае id=wpProQuiz_6).
2) Занести ID в переменную
3) Скрыть все DIVы с классом activtest ID которых не совпадает с ранее (пункт 2) найденным DIVом.


Последний раз редактировалось Dydaevskiy, 22.11.2016 в 15:16.
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2016, 15:35
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Dydaevskiy
скрипту необходимо сделать следующее:
1)Найти ID прародительского DIVа того элемента по которому был произведен щелчок (в данном случае id=wpProQuiz_6).
2) Занести ID в переменную
3) Скрыть все DIVы с классом activtest ID которых не совпадает с ранее (пункт 2) найденным DIVом.
Неудачный подход...
И сам алгоритм в частности.

Все тесты нужно отделить от страницы в целом....
Сначала показать список тестов. После выбора теста - подгрузить именно его.
Пусть начинают проходить.

И так поступать при любом выборе теста.
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2016, 15:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Dydaevskiy, ты серверный язык вообще никакой не используешь?
Ответить с цитированием
  #7 (permalink)  
Старый 22.11.2016, 16:14
Интересующийся
Отправить личное сообщение для Dydaevskiy Посмотреть профиль Найти все сообщения от Dydaevskiy
 
Регистрация: 21.11.2016
Сообщений: 17

Использую, но на этих тестах застрял.
Ответить с цитированием
  #8 (permalink)  
Старый 22.11.2016, 16:33
Интересующийся
Отправить личное сообщение для Dydaevskiy Посмотреть профиль Найти все сообщения от Dydaevskiy
 
Регистрация: 21.11.2016
Сообщений: 17

Сообщение от ksa Посмотреть сообщение
Dydaevskiy, ты серверный язык вообще никакой не используешь?
Подскажите пожалуйста хотя бы какойнибудь вариант касаемо описанного мной в данном сообщении http://javascript.ru/forum/showthrea...756#post435777
Ответить с цитированием
  #9 (permalink)  
Старый 22.11.2016, 16:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Dydaevskiy
пожалуйста хотя бы какойнибудь вариант касаемо описанного мной в данном сообщении
Делай тестовый пример - покажу на нем.
Ответить с цитированием
  #10 (permalink)  
Старый 22.11.2016, 16:41
Интересующийся
Отправить личное сообщение для Dydaevskiy Посмотреть профиль Найти все сообщения от Dydaevskiy
 
Регистрация: 21.11.2016
Сообщений: 17

Допустим есть такой вариант:
Ставим на кнопку onClick="show();"

show.visible = 'done';
show.hidden = 'available';
 function show(){
 	show.hidden = show.visible;
 	show.visible = (show.visible === 'done')?'available':'done';
	document.getElementById(show.visible).style.display = 'block';
	document.getElementById(show.hidden).style.display = 'none';
}


Скрипт очень даже работает, ему только нужно указать ID прородителя.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скрыть все DIV кроме заданного ID при клике? sibfox777 Элементы интерфейса 1 24.11.2014 18:16
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
yandex map region как скрыть все кроме карты России Telnet Общие вопросы Javascript 0 05.10.2013 15:38