Javascript.RU

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

Скрытие блоков
есть код:
<html>
<head>
<script type="text/javascript">
<!--
function open_reshenie(reshenie)
{
var obj=document.getElementById(reshenie);
if(obj.style.display=='none')
obj.style.display='block';
else
obj.style.display='none';
}
-->
</script>
</head>
<body>

<p><a href='javascript: open_reshenie(1)'>Открыть решение задачи 1</a>
<div ID=1 Style='text-indent:0pt;display:none'><p>решение 1</div>


<p><a href='javascript: open_reshenie(2)'>Открыть решение задачи 2</a>
<div ID=2 Style='text-indent:0pt;display:none'><p>решение 2</div>

<p><a href='javascript: open_reshenie(3)'>Открыть решение задачи 3</a>
<div ID=3 Style='text-indent:0pt;display:none'><p>решение 3</div>

</body>
</html>
нужно сделать так чтобы при клике по ссылке закрывался предыдущий блок и открывался блок именно той задачи которую мы хотим. Помогите плиз.
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2010, 14:42
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

во первых закрой все теги <p>
__________________
.

Последний раз редактировалось Skipp, 09.04.2010 в 14:44.
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2010, 14:46
Новичок на форуме
Отправить личное сообщение для xvasekx Посмотреть профиль Найти все сообщения от xvasekx
 
Регистрация: 09.04.2010
Сообщений: 5

я знаю что рабочий. просто нужно как то доработать чтобы при открытие другого решения предыдущее закрывалось.
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2010, 16:05
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

<html>
<head>
<script type="text/javascript">
function open_reshenie(reshenie)
{
	var reg = /^d\d{1,}$/;
	var divs = document.getElementsByTagName('div');
	for(var i = 0; i<divs.length; i++)
		if(divs[i].id.search(reg) + 1 && divs[i].id!=reshenie) divs[i].style.display='none';
		
	var obj=document.getElementById(reshenie);
	obj.style.display=='none' ? obj.style.display='block' : obj.style.display='none';
}
</script>
</head>
<body>

<div><a href='javascript: open_reshenie("d1")'>Открыть решение задачи 1</a></div>
<div id="d1" style='text-indent:0pt;display:none'>решение 1</div>


<div><a href='javascript: open_reshenie("d2")'>Открыть решение задачи 2</a></div>
<div id="d2" style='text-indent:0pt;display:none'>решение 2</div>

<div><a href='javascript: open_reshenie("d3")'>Открыть решение задачи 3</a></div>
<div id="d3" style='text-indent:0pt;display:none'>решение 3</div>

</body>
</html>
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2010, 16:15
Новичок на форуме
Отправить личное сообщение для xvasekx Посмотреть профиль Найти все сообщения от xvasekx
 
Регистрация: 09.04.2010
Сообщений: 5

спасибо огромное ... слушай еще вопрос: што это такое? reg = /^d\d{1,}$/;
Ответить с цитированием
  #6 (permalink)  
Старый 09.04.2010, 16:18
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

регулярное выражение.
В данном случаи суть этого выражения d+цифры(длиной от 1 до дохрена).
__________________
.
Ответить с цитированием
  #7 (permalink)  
Старый 09.04.2010, 16:20
Новичок на форуме
Отправить личное сообщение для xvasekx Посмотреть профиль Найти все сообщения от xvasekx
 
Регистрация: 09.04.2010
Сообщений: 5

ну все ясно премного благодарен
Ответить с цитированием
  #8 (permalink)  
Старый 09.04.2010, 16:57
Кандидат Javascript-наук
Отправить личное сообщение для lammeR Посмотреть профиль Найти все сообщения от lammeR
 
Регистрация: 15.01.2010
Сообщений: 138

Skipp,
А что такое "+1" здесь-> divs[i].id.search(reg) + 1, ищём id в названии, которого на цифру 1 больше?
Ответить с цитированием
  #9 (permalink)  
Старый 09.04.2010, 17:24
Новичок на форуме
Отправить личное сообщение для xvasekx Посмотреть профиль Найти все сообщения от xvasekx
 
Регистрация: 09.04.2010
Сообщений: 5

как я понял скрывать нужно каждый следующий тег <div> и если id не является равным id ссылки
Ответить с цитированием
  #10 (permalink)  
Старый 09.04.2010, 17:26
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Вы же не будете связывать таким образом, по id, 10 000 блоков? (Да и, кстати, параметр id не должен начинаться с цифры )
Нужно другое решение.
  1. Используйте DOM для связывания объектов
  2. Для изменения состояния блока указывайте класс

Это сильно упростит Вашу задачу.

Для примера, можете открыть в опере opera:config и поковыряться в ней дебаггером.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие блоков после получения ответа nemo Общие вопросы Javascript 1 22.11.2009 10:22
Скрытие iframe через js Veter Events/DOM/Window 7 03.10.2009 01:16
Печать невидимых блоков mixeeff Events/DOM/Window 7 11.03.2009 11:41
Скрытие текста на странице за ссылкой Vlad44 Общие вопросы Javascript 2 13.01.2009 18:02
Копирование блоков страницы(или целиком) Phoenix Общие вопросы Javascript 30 24.03.2008 23:46