Javascript.RU

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

упрощение, группировка элементов по id
Здравствуйте.

Совсем недавно начал изучать javascript. И столкнулся с проблемой, надеюсь на помощь мастеров.

s.hide1 = function () {
							id("text2").style.visibility = "hidden";
							id("text3").style.visibility = "hidden";
							id("text4").style.visibility = "hidden";
							id("text5").style.visibility = "hidden";
							id("text6").style.visibility = "hidden";
							id("text7").style.visibility = "hidden";
						}


Как такой код можно облегчить?

Я попытался следующим образом, но не заработало.

s.hide1 = function () {
							id("text2"+"text3"+"text4"+"text5"+"text6"+"text7").style.visibility = "hidden";
						}


Очень прошу вашей помощи

Последний раз редактировалось Nemezis, 12.03.2010 в 22:58.
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2010, 23:25
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

В css есть такая замечательная вещь, как классы. Используйте их.
Да и вообще, указание стиля через js не есть труЪ. Все-таки, разделение кода и отображения.
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2010, 23:30
Новичок на форуме
Отправить личное сообщение для Nemezis Посмотреть профиль Найти все сообщения от Nemezis
 
Регистрация: 12.03.2010
Сообщений: 3

Сообщение от subzey Посмотреть сообщение
В css есть такая замечательная вещь, как классы. Используйте их.
Да и вообще, указание стиля через js не есть труЪ. Все-таки, разделение кода и отображения.
Спасибо за рекомендацию, но мне нужна помощь именно в том ключе, который дан в первом посте.
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2010, 00:50
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Ох уж эта практика без теории…

<style type="text/css">
	.magic-input {visibility: hidden}
	.toggler-1 .state-1,
	.toggler-2 .state-2,
	.toggler-3 .state-3 {
		visibility: visible;
	}
</style>
<form id="container" class="toggler-1">
	<div>
		<input name="foo1"   class="magic-input state-1" />
		<input name="foo2"   class="magic-input state-2" />
		<input name="foo3"   class="magic-input state-3" />
	</div>
	<div>
		<input name="foo265" class="magic-input state-3" />
		<input name="foo42"  class="magic-input state-1" />
		<input name="foo666" class="magic-input state-2" />
	</div>
	<div>
		<input name="foo7"   class="magic-input state-2" />
		<input name="fooNaN" class="magic-input state-3" />
		<input name="foo13"  class="magic-input state-1" />
	</div>
	<div>
		<input type="button" value="Roll!" onclick="stateChange(); return false"/>
	</div>
</form>
<script type="text/javascript">
	function stateChange(){
		if (!arguments.callee.state) arguments.callee.state = 1;
		arguments.callee.state = arguments.callee.state%3 + 1;
		document.getElementById('container').className = "toggler-" + arguments.callee.state;
	}
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2010, 20:58
Новичок на форуме
Отправить личное сообщение для Nemezis Посмотреть профиль Найти все сообщения от Nemezis
 
Регистрация: 12.03.2010
Сообщений: 3

Спасибо большое, но это решение пока слишком сложное для меня.
Пока ещё не совсем понимаю, что происходит при нажатии кнопки.
Ответить с цитированием
  #6 (permalink)  
Старый 15.03.2010, 18:37
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Nemezis,
Сначала задается правило: все элементы с классом magic-input не отображать.
Следом за ним, с бóльшим приоритетом: все элементы с классом state-1 внутри элемента с классом toggler-1, state-2 внутри toggler-2 и state-3 внутри toggler-3 показываются.

А дальше скрипт при нажатии на кнопку меняет последовательно у обвертки класс: toggler-1toggler-2toggler-3.

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

Немного сумбурно объясняю, но, надеюсь, для общего понимания хватит.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прочитать список имён элементов в Cookie? Бобр Общие вопросы Javascript 6 09.02.2010 08:47
как записать id всех элементов в массив? SunYang Общие вопросы Javascript 21 06.02.2010 22:50
Как снять фокус со всех элементов? Logo Общие вопросы Javascript 7 02.07.2009 23:53
Выбор элементов и построение списка выбранных элементов. madgals Events/DOM/Window 6 14.04.2009 22:30
Поиск элементов в контексте korzhik Events/DOM/Window 6 31.12.2008 11:35