imho.ws |
![]() |
![]() |
![]() |
# 1 |
Guest
Сообщения: n/a
|
![]()
У меня возникла проблема .
разные браузеры по разному реагируют на строчку this.style.backgroundColor='....'; например ИЕ ее вообе не понимает и при этом как и положено ругается... ,а такую this.setAttribute('bgcolor', '#d3d3d3', 0); понимает как надо , но при этом продолжает ругатся... хотя и понимать ее стал только IE начиная с 5 =( где можно узнать . какие команды какие браузеры поддерживают или лучше подскажите как эту проблему решить проще (как функцию написать чтобы она оперделяла браузер и подставляла ту или иную команду)... вопрос второй . у меня есть функция которая отвечает за то ,что она показывает и прачет слои . Как написать функцию .которая прячет все слои ид которых забиты в массив . при этом исключая определенный слой. (надоело писать что-то типа ... <a class = "black" href =<? echo $this->home;?> onMouseOver="hiddenLayer('PO'); hiddenLayer('build'); hiddenLayer('buildsub'); hiddenLayer('subPO')"> PS я все делал под оперу. а когда полез проверять в другие браузеры вот такая фигня выползла .... |
![]() |
# 2 |
::VIP::
Художник-2004 Регистрация: 04.11.2002
Адрес: Питер
Сообщения: 1 604
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
<TD bgcolor=#ffffff onMouseOver="this.style.backgroundColor='#000000';" onMouseOut="this.style.backgroundColor='#ffffff';">
Все работает... Добавлено через 3 минуты: По поводу слоев: Так же написать функцию, которая прячет все слои кроме того слоя, id которого передается в эту "прячущую" функцию в качестве параметра. Вроде думаю надо именно так делать ![]() ![]() |
![]() |
![]() |
# 5 |
Guest
Сообщения: n/a
|
Причина почему мне надо прятать все слои из массива. в том , что если я буду прятать слои без разбора =) то у меня от страници НИЧЕГО кроме одной таблици не останется =) , а я в JavaScript полный чайник
![]() Добавлено через 19 минут: sanchos попробуй зайти на www.thr.ru/new/ и там левая часть меню сделана с использованием this.style.backgroundColor а верхняя при помощи this.setAttribute() я тогда непонимаю почему в первом случае у меня ИЕ лепит ошибки ( и во втором тоже .. но хотябы работает ) |
![]() |
# 6 | |
::VIP::
Художник-2004 Регистрация: 04.11.2002
Адрес: Питер
Сообщения: 1 604
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Чего-то ты меня паришь. Ошибки у тебя заметил... выскакивают и у меня
![]() Скачал твою страницу... решил поправить один столбец (Вакансии). Все работает! Вот твой код, исправленный мной. Уберай нафиг setAttribute и ставь style.background. Вот тебе пример: <TD onmouseout="this.style.backgroundColor='#ffffff';" onmouseover="this.style.backgroundColor='#d3d3d3';" vAlign=center width=162><A class=black href="http://www.thr.ru/new/Personal/" onmouseover="hiddenLayer('PO'); hiddenLayer('build'); hiddenLayer('buildsub'); hiddenLayer('subPO')"> Работает? Добавлено через 1 минуту: Цитата:
![]() |
|
![]() |
![]() |
# 7 |
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Первое, что бросается в глаза это попытка задать цвет:
Код:
this.style.backgroundColor='lightgray' |
![]() |
![]() |
# 13 |
Guest
Сообщения: n/a
|
теперь перейдем ко второму вопросу .. т.к. я полный чайник в js
![]() function hiddenLayer(layer) { init(); if(IE) eval('document.all[layer].style.visibility = "hidden"') if(NC) eval('document.layers[layer].visibility = "hidden"') if(Opera) eval('document.getElementById(layer).style.visibility = "hidden"') } функция прячет мои слои .. но писать вот так <a class = "black" href = # onMouseOver="showLayer('PO'); hiddenLayer('build'); hiddenLayer('buildsub'); hiddenLayer('subPO')" > меня уже достало .. как написать функцию которая прячет все вышеперечисленные слои ,за исключением одного который будет вставлятся туда ,где счас они прячутся. Последний раз редактировалось Dmitry_A; 14.08.2003 в 16:12. |
![]() |
# 18 |
::VIP::
Художник-2004 Регистрация: 04.11.2002
Адрес: Питер
Сообщения: 1 604
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Код:
function visibleLayer(layer){ init(); var allLayers = new Array("l1", "l2", "l3", "l4", "l5"); // массив из имен слоев for(i = 0; i < allLayers.length; i++){ // если нужный слой, то показываем if(allLayers[i] == layer){ if(IE) eval('document.all[layer].style.visibility = "visible"'); if(NC) eval('document.layers[layer].visibility = "visible"'); if(Opera) eval('document.getElementById(layer).style.visibility = "visible"'); continue; } // прячем слой, если ненужный if(IE) eval('document.all[allLayers[i]].style.visibility = "hidden"'); if(NC) eval('document.layers[allLayers[i]].visibility = "hidden"'); if(Opera) eval('document.getElementById(allLayers[i]).style.visibility = "hidden"'); } } Юзать так: <A href=# onMouseOver="visibleLayer('тот слой, который нужно оставить видимым')"> Получилось? ![]() |
![]() |