![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Captain Blood |
|
|||
|
Unregistered |
Подскажите, как можно спрятать слои с одним идентификатором через display? У меня есть следующий код:
<div id=layer>...</div> <div id=layer>...</div> <div id=layer>...</div> Мне надо сделать, чтобы обработчик связанный с кнопкой, показывал или прятал ВСЕ слои с именем layer одновременно. У меня же пока получается, что только один самый верхний слой реагирует на скрипт. Мне важна идея, как это сделать, программу сам постараюсь написать. |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
Дай им разные ID!!! При таком раскладе у тебя и будет прятаться только первый найденный слой!
|
|||
|
||||
| Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 5 Всего: 127 |
ID просто заменяй на классы, и присваивай стиль невидимости классу, а не идентификатору. Или прописывай невидимость в параметре style каждого тега.
А если тебе нужно дотянуться из JavaScript до этих тегов, это сложнее. Используй методы DOM и параметр className , сверяя его с именем твоего класса. -------------------- |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
есть слои
<div id=layer1 style="DISPLAY: inline">...</div> <div id=layer2 style="DISPLAY: inline">...</div> <div id=layer3 style="DISPLAY: inline">...</div> ... рисуем функцию в которую передаём переменную function qqq(a){ //делаем переменную var tmp //определяем семейство браузеров IE = (document.all) NC = (document.layers) Op = (document.getElementById) //и далее поочерёдно их опрашиваем и делаем что тебе надо for (var i=1; i<4; i++){ if(IE) tmp = document.all["layer"+i] if(NC) tmp = document.layers["layer"+i] if(Op) tmp = document.getElementById("layer"+i) //если передано "0" - слои закрываются if (a==0){tmp.style.display = "none"} //если передано что либо другое - отрываем слои else {tmp.style.display = "inline"} } } Это сообщение отредактировал(а) Red Dragon - 6.7.2004, 12:45 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
2Red Dragon по моему уже давно настала пора забыть о document.layers и document.all навсегда
Пересказывая Се ля ви... Если все подопытные находятся в одном родительском слое, то можно пробежатся по childNodes, меняя по по пути style.visibility у помеченных через className. Так будет работать и в глючной опере. Способ более изящный:
Но, как и следовало ожидать, в опере он не работает - не существует document.styleSheets. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Captain Blood |
|
|||
|
Unregistered |
Спасибо всем за помощь.
Идея с разными стилями у меня была. В IE можно сделать две разных стилевых таблицы и присваивать по очереди любому элементу - один стиль делает слои видимыми, другой - невидимыми. Но, увы, в Опере, как было замечено, это не работает. Резюмируя сказанное другими авторами, можно выделить два решения. Первое - присвоить каждому слою свой идентификатор и в цикле по ним всем "пробегаться" пряча слои или делая их видимыми. Второе - сделать как предложил Sardar , а на Оперу плюнуть, отключив фичу со слоями, например, чтобы слои всегда отображались. Не очень хороший способ, но тоже вариант, когда надо сделать проще. Правильно идеи изложил? |
|||
|
||||
| mix |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 23.2.2003 Репутация: нет Всего: 1 |
ИМХО, ребята, вы делаете из мухи - слона.
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
mix
А если слои в разных местах, а не подряд? Sardar Почему можно забыть?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Это была шутка, к которой я отношусь серьезно Есть понятие стандарт(DOM), есть доказанное опытным путем явление: люди любят новый софт. Существует странная тенденция софта реализовывать стандарты Вывод: где ты, кроме как у "убогих" КПК, видел браузер, который не поддерживает DOM'овский getElmentById и этот браузер не старше 5 лет? -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
Семён Семёныч........
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| mix |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 23.2.2003 Репутация: нет Всего: 1 |
Тогда так:
|
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |