Видимость тега select по индексу Z

Bu-Bu

Любитель PHP
Видимость тега select по индексу Z

Столкнулся с такой дурацкой вещью - формы с тегом select вылазят поверх всех других вещей на странице (например меню javascript). Если кто сталкивался и решил эту проблему, то буду благодарен за помощь. Проблема в том, чтобы убрать select за меню. В меню индекс z=1000.
 

.::PhoenikS::.

Новичок
Как я понимаю, проблема только в IE (в других браузерах другие проблемы)

А убрать можешь скрываю все select скриптом, который например будет выставлять style.display = 'none', а потом обратно включать


ЗЫ. вопрос не в той теме явно
 

Bu-Bu

Любитель PHP
Автор оригинала: .::phoenikS::.
Как я понимаю, проблема только в IE (в других браузерах другие проблемы)

А убрать можешь скрываю все select скриптом, который например будет выставлять style.display = 'none', а потом обратно включать


Другие броузеры меня мало колышат. А поподробнее про style.display можешь сказать? Или инфу подскажи
 

master_x

Pitavale XXI wieku
так было и будет в IE. потому как селект- элемент интерфейса ОС. Хинт: единственный элемент который перекрывает селект- IFRAME. Во всех других случаях лучше просто скрывать селект.
 

Bu-Bu

Любитель PHP
Автор оригинала: master_x
так было и будет в IE. потому как селект- элемент интерфейса ОС. Хинт: единственный элемент который перекрывает селект- IFRAME. Во всех других случаях лучше просто скрывать селект.
Так подскажите: как скрыть? Все перерыл и об этой проблеме тишина.
 

Bu-Bu

Любитель PHP
Автор оригинала: t3[0one]
уже написали ведь
style.display = 'none' или style.visible='hidden'
Куда сунуть-то этот style.display? Страниц с формами масса, а меню одно. Понимаю, что выгляжу наивно, но если не вдавался глубоко в java, а проблема есть. Где искать?
 

SelenIT

IT-лунатик :)
Вариант реализации:
Код:
function toggleSelectsVisibility()
{
   selects = document.getElementsByTagName('SELECT');
   for (i=0; i<selects.length; i++)
   {
      selects[i].style.visibility = (selects[i].style.visibility == 'hidden') ? 'visible' : 'hidden';
   }
}
P.S. Конечно, форум выбран очень неудачно. Есть же специальнй раздел по JS...
 

alexhemp

Новичок
Зачем изобретать велосипед, если есть чудесная библиотека
Windowed Control Hider
http://www.aplus.co.yu/wch/intro/
 

Bu-Bu

Любитель PHP
Автор оригинала: alexhemp
Зачем изобретать велосипед, если есть чудесная библиотека
Windowed Control Hider
http://www.aplus.co.yu/wch/intro/
Да уж, чудесная библиотека! Скачал, тупо выполнил их инструкции, но ни хрена не работает ни на странице ни в iframe. Дело в том, что меню у меня состоит из многоуровневых слоев и дивов, так что вставка класса в каждый див ничего не дает.
 

BeGe

Вождь Апачей, блин (c)
Я так понял тут никто не знает почему именно селект - не подчинятся правилу z-index...

Всё дело в том что, IE считает что селект это объект для отображения типа window, то есть... на страницу помещается окон о, которое находится над елементами страницы (текстом), точно так же себе ведёт и iframe и frame, что бы перекрыть селект надо сделать вместо div или span открывать iframe.
 

Bu-Bu

Любитель PHP
Автор оригинала: BeGe
Я так понял тут никто не знает почему именно селект - не подчинятся правилу z-index...

Всё дело в том что, IE считает что селект это объект для отображения типа window, то есть... на страницу помещается окон о, которое находится над елементами страницы (текстом), точно так же себе ведёт и iframe и frame, что бы перекрыть селект надо сделать вместо div или span открывать iframe.
Все советы хороши, выбрал такое решение:

selects = document.getElementsByTagName('SELECT');
for (i=0; i<selects.length; i++)
{
if (selects.style.visibility !='hidden')
{
selects.style.visibility = (selects.style.visibility == 'hidden') ? 'visible' : 'hidden';
}
}

Обратное включение через onmousover. А вообще, если разберусь с библиотекой wsh, то попробую ее воткнуть - не люблю полумер. Если будут новые мысли - пишите!
 

SelenIT

IT-лунатик :)
Bu-Bu
if тут не нужен, запись
(условие) ? значениеЕслиИстинно : значениеЕслиЛожно
уже делает то же самое.
 

master_x

Pitavale XXI wieku
BeGe
Я так понял тут никто не знает почему именно селект - не подчинятся правилу z-index...
Неправильно понял, надо читать весь топик а не только его последнее сообщение.
 

alexhemp

Новичок
Bu-Bu

Видимо ты ее неверно применял. Нужно вызывать Apply для основного слоя, его z-index нужно сделать не меньше 2-х

Читай документацию, смотри примеры, там все понятно. Я не видел ни одного случая, чтобы она не сработала.
 

Bu-Bu

Любитель PHP
Автор оригинала: alexhemp
Bu-Bu

Видимо ты ее неверно применял. Нужно вызывать Apply для основного слоя, его z-index нужно сделать не меньше 2-х

Читай документацию, смотри примеры, там все понятно. Я не видел ни одного случая, чтобы она не сработала.
Меню - сплошные дивы и лэйеры - до пяти веток, все написано в javascript. z-index=1000(!), куда уж больше? А классы я вставлял и туда и сюда, но даже на одной странице не срабатывало, а уж во фрейме тем паче. Боюсь, что эта библиотека предназначена не для javascript-меню.

-~{}~ 13.11.05 22:57:

Автор оригинала: SelenIT
Bu-Bu
if тут не нужен, запись
(условие) ? значениеЕслиИстинно : значениеЕслиЛожно
уже делает то же самое.
Без if при одном нажатии на меню select пропадает, а при втором появляется, так что if в данном случае необходим, чтобы ограничить все одним действием.
 

SelenIT

IT-лунатик :)
при одном нажатии на меню select пропадает, а при втором появляется
Точнее, при первом и втором вызове ф-ции соответственно. Нажатие - не единственное событие, на которое можно ее "повесить"...
чтобы ограничить все одним действием
Что "все"? И в любом случае, зачем 2 условия, первое из которых делает ненужным проверку второго?
 

Bu-Bu

Любитель PHP
Автор оригинала: SelenIT
Точнее, при первом и втором вызове ф-ции соответственно. Нажатие - не единственное событие, на которое можно ее "повесить"...
Что "все"? И в любом случае, зачем 2 условия, первое из которых делает ненужным проверку второго?
К чему спор? Я же проверил работу скрипта - без if каждое нажатие на кнопку меню вызывало попеременно то появление, то исчезновение select. Меню настроено так, что слои выпадают по клику, скрипт вставлен в действие onClick()
 

SelenIT

IT-лунатик :)
Bu-Bu
Спор ни к чему. Но если тебе нужно такое поведение:
Код:
 if (selects[i].style.visibility !='hidden') selects[i].style.visibility = 'hidden';
зачем вторая проверка условия в "... = ... ? ... : ...;"?
 

alexhemp

Новичок
Bu-Bu

У меня отлично работает на любых JavaScript меню.

Впрочем, доказывать ничего не буду, не хотите пользоваться хорошей проверенной библиотекой, я вас убеждать не буду.

Просто с ней ничего не надо прятать, меню отлично отображается поверх селекта.
 
Сверху