|
|
|
| Здравствуйте, помогите с выпадающим меню, все в принципе работает, но пока все меню не раскроются, выдает ошибку,
Строка: 20
Символ: 1
Ошибка: Не удалось получить свойство display. Недоступный аргумент.
Код: 0
|
код меню:
<html>
<head>
<title></title>
<script language="javascript">
function getCookie(name) {
var a = name+"=";
var cookieStartIndex = document.cookie.indexOf(a);
if (cookieStartIndex == -1) return null;
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + a.length);
if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
return unescape(document.cookie.substring(cookieStartIndex + a.length, cookieEndIndex));
}
function startbl4() {
var d = document;
var a = getCookie('sub1');
var c = getCookie('sub2');
d.getElementById('sub1').style.display = a;
d.getElementById('sub2').style.display = c;
}
function showbl4(obj) {
var d = document;
var a = d.getElementById(obj).style.display;
var c = d.getElementById(obj).style.display;
var z = d.getElementById(obj).style.display = ( a == 'none')?'block':'none';
d.cookie = obj+'='+z;
var x = d.getElementById(obj).style.display = ( c == 'none')?'block':'none';
d.cookie = obj+'='+x;
}
</script>
</head>
<body onload="startbl4()">
<table onclick="showbl4('sub1')"><tr><td>
Меню1
</td></tr></table>
<span id="sub1" style="display: none">
<table><tr><td>
<a href='11'>подменю1.1</a>
</td></tr></table>
<table><tr><td>
<a href='12'>подменю1.2</a>
</td></tr></table>
<table><tr><td>
<a href='13'>подменю1.3</a>
</td></tr></table>
</span>
<table><tr><td>
<a href="1">Меню2</a>
</td></tr></table>
<table onclick="showbl4('sub2')"><tr><td>
Меню3
</td></tr></table>
<span id="sub2" style="display: none">
<table><tr><td>
<a href='3'>подменю3.1</a>
</td></tr></table>
<table><tr><td>
<a href='32'>подменю3.2</a>
</td></tr></table>
<table><tr><td>
<a href='33'>подменю3.3</a>
</td></tr></table>
<table><tr><td>
<a href='34'>подменю3.4</a>
</td></tr></table>
</span>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: x][x
(28.02.2009 в 14:46)
| | Добавьте два alert'a - и, полагаю, сразу поймёте, в чём ваша проблема.
function startbl4() {
var d = document;
var a = getCookie('sub1'); alert (a);
var c = getCookie('sub2'); alert (c);
d.getElementById('sub1').style.display = a;
d.getElementById('sub2').style.display = c;
}
|
Куки надо не только читать.
Их перед прочтением надо бы сначала "поставить" на компе пользователя :-) | |
|
|
|
|
|
|
|
для: PAT
(01.03.2009 в 01:48)
| | Не могли бы подсказать как сделать так, что бы по умолчанию в cookie 'ах style.display='none'.
JS только начал осваивать, пока еще ни все понимаю, так что если можно поподробнее...
И еще вопрос, как можно заменить запуск функции
<body onload="startbl4()">
|
а то меню разворачивается только после загрузки всей страницы, а хотелось что бы это происходило одновременно с его появлением.
Заранее спасибо. | |
|
|
|
|
|
|
|
для: x][x
(01.03.2009 в 13:42)
| | Ответ на первый вопрос:
function startbl4() {
var d = document;
var a = getCookie('sub1');
var c = getCookie('sub2');
if (!a && !c) a = c = 'none';
d.getElementById('sub1').style.display = a;
d.getElementById('sub2').style.display = c;
}
|
Ответ на второй вопрос:
onload="startbl4()" из тега <BODY> уберите.
И пропишите после закрывающего тега </TABLE>
<script>startbl4 ();</script>
|
| |
|
|
|
|
|
|
|
для: x][x
(28.02.2009 в 14:46)
| | Столкнулся еще с одной проблемой :(
Сделал так чтобы cookie хранились 2 недели, но они сохраняются не для всего сайта, а для каждого раздела отдельно 1@guestbook.txt, 1@katalog.txt и т.д. в итоге при переходе из одного раздела в другой меню раскрывается по-разному.
function showbl4(obj) {
var d = document;
var today = new Date();
expires = new Date(today.getTime() + 2*7*24*60*60*1000);
var a = d.getElementById(obj).style.display;
var b = d.getElementById(obj).style.display;
var c = d.getElementById(obj).style.display;
var z = d.getElementById(obj).style.display = ( a == 'none')?'block':'none';
d.cookie = obj+'='+z+ '; expires=' + expires.toGMTString();
var x = d.getElementById(obj).style.display = ( b == 'none')?'block':'none';
d.cookie = obj+'='+x+ '; expires=' + expires.toGMTString();
}
|
| |
|
|
|
|
|
|
|
для: x][x
(01.03.2009 в 15:58)
| |
d.cookie = obj + '=' + z + '; expires=' + expires.toGMTString () + '; domain=' + document.domain + '; path=/';
и
d.cookie = obj + '=' + x + '; expires=' + expires.toGMTString () + '; domain=' + document.domain + '; path=/';
|
| |
|
|
|