Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2010, 15:12
Интересующийся
Отправить личное сообщение для Avel Mink Посмотреть профиль Найти все сообщения от Avel Mink
 
Регистрация: 24.10.2009
Сообщений: 24

Подключение нескольких document.getElementById
Проблема состоит в том, что мне надо чтобы при нажатии на ссылку изменялся параметр стиля сразу у нескольких блоков. Если проще, то есть такой код:
<div onclick="document.getElementById('opro').style.display = 'none'; document.getElementById('ast').style.display = 'none'; document.getElementById('qwe').style.display = 'none'; и т.д. ">


мне всего лишь надо объединить эти функции в одну, потому что если добавить еще парочку таких, то почему то перестают действовать последние из них. Решение через for со счетчиком не подходит, нужно именно указывать разные id блоков(их всего будет 5-10 штук). Заранее спасибо за помощь
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2010, 15:40
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

div_element.onclick=function(){
document.getElementById('opro').style.display = 'none'; document.getElementById('ast').style.display = 'none'; document.getElementById('qwe').style.display = 'none'; и т.д. 
}

PS http://javascript.ru/tutorial/events
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2010, 15:40
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Avel Mink, ну как пример:

function changeStyle()
{
    for(var i=0;i<2;i++)
    {
        document.getElementById("div"+i).style.display = 'none';
    }
}

соответственно имена у дивов с id="div0" и id="div1"
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2010, 15:46
Аватар для chippolino
Аспирант
Отправить личное сообщение для chippolino Посмотреть профиль Найти все сообщения от chippolino
 
Регистрация: 24.04.2010
Сообщений: 79

<script type="text/javascript">
	window.onload=(function(){
		function $(a){return document.getElementById(a);}
		$('d1').onclick=(function(){
			ID=['d2','d3','d4'];
			for(k in ID){
				$(ID[k]).style.display='none';
			}
		});	
	});
</script>
<div id="d1">click</div>
<div id="d2">1</div>
<div id="d3">1</div>
<div id="d4">1</div>
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2010, 15:52
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

chippolino,
это не раздел по какому-либо фреймворку.
для них есть отдельный раздел.
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2010, 15:58
Аватар для chippolino
Аспирант
Отправить личное сообщение для chippolino Посмотреть профиль Найти все сообщения от chippolino
 
Регистрация: 24.04.2010
Сообщений: 79

Gvozd, а где ты тут видишь "какой-либо фреймворк"???
Ответить с цитированием
  #7 (permalink)  
Старый 04.08.2010, 16:04
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

chippolino, на первый взгляд код похож на jquery, а у Вас просто функция с именем $, которая возвращает ссылку на элемент)
Ответить с цитированием
  #8 (permalink)  
Старый 04.08.2010, 16:06
Интересующийся
Отправить личное сообщение для Avel Mink Посмотреть профиль Найти все сообщения от Avel Mink
 
Регистрация: 24.10.2009
Сообщений: 24

Сообщение от chippolino Посмотреть сообщение
<script type="text/javascript">
	window.onload=(function(){
		function $(a){return document.getElementById(a);}
		$('d1').onclick=(function(){
			ID=['d2','d3','d4'];
			for(k in ID){
				$(ID[k]).style.display='none';
			}
		});	
	});
</script>
<div id="d1">click</div>
<div id="d2">1</div>
<div id="d3">1</div>
<div id="d4">1</div>
Твой вариант мне подходит больше всего, но как сделать чтобы при нажатии на любой из блоков закрывались все остальные кроме него. То есть не было вот этой привязки по id
... $('d1').onclick ...
. Спасибо
Ответить с цитированием
  #9 (permalink)  
Старый 04.08.2010, 16:18
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Avel Mink
как сделать чтобы при нажатии на любой из блоков закрывались все остальные кроме него. То есть не было вот этой привязки по id
с этого и надо было начинать
вы не стой стороны начали решать задачу
fucntion func(elem){
    var elems=...//список всех div-ов
    for(i=0;i<elems.length;i++){
        if(elems[i]!=elem)
            ...//скрываем элемент
    }
}

<div onclick="func(this)"></div>
Ответить с цитированием
  #10 (permalink)  
Старый 04.08.2010, 16:23
Интересующийся
Отправить личное сообщение для Avel Mink Посмотреть профиль Найти все сообщения от Avel Mink
 
Регистрация: 24.10.2009
Сообщений: 24

если можно напишите примеры, что должно быть тут
... var elems=...//список всех div-ов ...

и тут
...//скрываем элемент ...

потому что я не разбираюсь в javascript. Спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение внешних таблиц из css файла chippolino (X)HTML/CSS 14 30.04.2010 12:36
Объединение нескольких строк. T-sh Общие вопросы Javascript 0 04.12.2009 00:27
Подключение событий в onload и определение их типа anstm Events/DOM/Window 2 07.04.2009 15:20
подключение к серверу sat-lin AJAX и COMET 9 23.03.2009 18:37
поменять цвет у нескольких строк в таблице Root Элементы интерфейса 4 21.04.2008 10:30