Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Cannot read property 'style' of null (https://javascript.ru/forum/misc/39098-cannot-read-property-%27style%27-null.html)

gurg0n 15.06.2013 17:09

Cannot read property 'style' of null
 
Здравствуйте! Вашему вниманию код, который работал до того момента как я решил добавить кое-какие скрипты, которые затем удалил. Казалось бы, вернул все как есть, но сейчас код не работает:

TypeError: Cannot read property 'style' of null [http://magascity.ru/index.php/plan:179]
TypeError: Cannot read property 'style' of null [http://magascity.ru/index.php/plan:188]
TypeError: Cannot read property 'style' of null [http://magascity.ru/index.php/plan:179]
TypeError: Cannot read property 'style' of null [http://magascity.ru/index.php/plan:188]

По идее, при наведении указателя на map area должен был показываться div с классом .tootlip (onmouseover="showLayer('link1'))

Что-то здесь не-так, ведь раньше код работал. Пытался разобраться самостоятельно, но никак не могу найти причину!

<script language="JavaScript1.2">
<!--
var ie = document.all ? 1 : 0;
var ns = document.layers ? 1 : 0;
var topcss = 165;
if (ns)
topcss = 200;
function showLayer(name)
{
if (ie)
 
document.all[name].style.visibility = "visible";
else if (ns)
document.layers[name].visibility = "show";
 
else document.getElementById(name).style.visibility = "visible";    
}
function hideLayer(name)
{
if (ie)
document.all[name].style.visibility = "hidden";
else if (ns)
document.layers[name].visibility = "hide";
 
else document.getElementById(name).style.visibility = "hidden"; 
}
//-->
</script>


Для наглядности:http://jsfiddle.net/TcgH9/8/

dmitriymar 15.06.2013 17:30

Цитата:

Сообщение от gurg0n
var ie = document.all ? 1 : 0;
var ns = document.layers ? 1 : 0;
var topcss = 165;
if (ns)
topcss = 200;
function showLayer(name)
{
if (ie)

document.all[name].style.visibility = "visible";

Какого года книжка , после прочтения которой писался этот код? -это раз
http://learn.javascript.ru/

Цитата:

Сообщение от gurg0n
if (ie)

document.all[name].style.visibility = "visible";
else if (ns)
document.layers[name].visibility = "show";

else document.getElementById(name).style.visibility = "visible";

где вы этому кодстайлу научились в каком ни отступов ни фигурных скобок не существует для блоков и конструкций? -это два

Цитата:

Сообщение от gurg0n
Здравствуйте! Вашему вниманию код, который работал до того момента как я решил добавить кое-какие скрипты, которые затем удалил. Казалось бы, вернул все как есть, но сейчас код не работает:

TypeError: Cannot read property 'style' of null [http://magascity.ru/index.php/plan:179]
TypeError: Cannot read property 'style' of null [http://magascity.ru/index.php/plan:188]
TypeError: Cannot read property 'style' of null [http://magascity.ru/index.php/plan:179]
TypeError: Cannot read property 'style' of null [http://magascity.ru/index.php/plan:188]

Цитата:

Сообщение от gurg0n
Для наглядности:http://jsfiddle.net/TcgH9/8/

ReferenceError: showLayer is not defined
ReferenceError: hideLayer is not defined
ReferenceError: showLayer is not defined
ReferenceError: hideLayer is not defined
ReferenceError: showLayer is not defined
ReferenceError: hideLayer is not defined
ReferenceError: showLayer is not defined
ReferenceError: showLayer is not defined
ReferenceError: hideLayer is not defined
....
и это три

gurg0n 15.06.2013 17:49

Спасибо за книжку, но пока у меня нет времени изучать ее. В яве я ноль, а сие решение нашел на одном форуме. Правда не смотрел какого года сообщение))
Но дело в том, что код у меня работал сегодня утром. Хотелось бы понять, почему сейчас не работает

gurg0n 15.06.2013 17:52

Цитата:

Сообщение от gurg0n (Сообщение 256536)
не смотрел какого года сообщение

оказывается 2007 года)

dmitriymar 15.06.2013 18:11

Цитата:

Сообщение от gurg0n
оказывается 2007 года)

ну и не стоит им пользоваться вообще . всё изменилось и сильно
Цитата:

Сообщение от gurg0n
Но дело в том, что код у меня работал сегодня утром

-это не повод его использовать

gurg0n 15.06.2013 18:16

Спасибо. Появится время, буду учить javascript

dmitriymar 15.06.2013 18:24

Тогда:
Цитата:

Сообщение от gurg0n
script language="JavaScript1.2">
<!--
var ie = document.all ? 1 : 0;
var ns = document.layers ? 1 : 0;
var topcss = 165;
if (ns)
topcss = 200;
function showLayer(name)
{
if (ie)

document.all[name].style.visibility = "visible";
else if (ns)
document.layers[name].visibility = "show";

else document.getElementById(name).style.visibility = "visible";
}
function hideLayer(name)
{
if (ie)
document.all[name].style.visibility = "hidden";
else if (ns)
document.layers[name].visibility = "hide";

else document.getElementById(name).style.visibility = "hidden";
}
//-->
</script>

Сейчас:
function showLayer(id){
    document.getElementById(id).style.visibility = "visible";
}
function hideLayer(id){
    document.getElementById(id).style.visibility = "hidden"
}



Здорово конечно передавать класс и в функции обрабатывать его как id:
<div class id="link1">Детский садик на 80 мест</div>
</div>
<p>
<map id="genPlan" name="genPlan">
<area shape="poly" coords="195,2,9,4,56,114,90,235,92,238,133,239,133 ,152,137,157,141,154,145,155,146,154,153,155,173,1 39,176,131,176,127,177,113,178,118,182,118,187,119 ,195,116,197,117,197,4" href="#" onmouseover="showLayer('link1');" onmouseout="hideLayer('link1');">

gurg0n 15.06.2013 18:41

Это вы верно заметили. Но проблема осталась

dmitriymar 15.06.2013 19:33

Цитата:

Сообщение от gurg0n
Это вы верно заметили. Но проблема осталась

кеш сбросьте


Часовой пояс GMT +3, время: 01:28.