|
|
|
| Здравствуйте!
имеется меню c данными из БД, обрабатываемые JavaScript, но есть один нюанс:
суть работы: кликаешь по рубрике без перезагрузке вываливаються подрубрики, кликаешь по другой эти сворачивается новый открываются. Но есть один нюанс: если рубрики идут по id 1,2,3,4, и т.п. - все работает, но если одну из рубрик удалить (1,2,4 и т.п) т.е. их нумерация нарушиться скрипт, который привязан к номеру не работает. Нельзя ли переделать скрипт так, чтобы он не зависел от соотношения номера рубрики и количества рубрик. Спасибо!
<script language="javascript">
function getObj(id) {
if (document.getElementById) {
return document.getElementById(id);
}
else if (document.all) {
return document.all[id];
}
else if (document.layers) {
return document.layers[id];
}
}
function showInfo (id) {
for (i=1; i<<? echo $c?>; i++) {
getObj("sh_"+i).style.display = "none"
}
(getObj(id).style.display == "block") ? getObj(id).style.display = "none" : getObj(id).style.display = "block";
}
</script>
|
| |
|
|
|
|
|
|
|
для: ronin
(21.10.2008 в 17:19)
| | проверять есть ли объект.. | |
|
|
|
|
|
|
|
для: sl1p
(21.10.2008 в 17:41)
| | А если можно, по-подробней. | |
|
|
|
|
|
|
|
для: ronin
(21.10.2008 в 17:47)
| | function showInfo (id)
{
for (i=1; i<<? echo $c?>; i++)if( getObj("sh_"+i)) getObj("sh_"+i).style.display = "none";
with(getObj(id).style){display=display=='none'?'block':'none';}
}
</script>
шото типа такого | |
|
|
|
|
|
|
|
для: sl1p
(21.10.2008 в 17:55)
| | не, не работает, плюс я может неправильно объяснил:
если id рубрик идет 1,2,3,4,5 без пробелов - все тип-топ, но если есть рубрики:
1,2,(к примеру нет №3)4,5,6 то скрипт не работает. Это случаеться если удалить рубрику из базы. | |
|
|
|
|
|
|
|
для: ronin
(21.10.2008 в 18:03)
| | откуда ошибка и что говорит? | |
|
|
|
|
|
|
|
для: sl1p
(21.10.2008 в 18:08)
| | СПАСИБО!!!
работает частично, именно пока не раскрылись подрубрики и страница перезагрузилась, тогда открыты те рубрики, что надо | |
|
|
|
|
|
|
|
для: ronin
(21.10.2008 в 18:14)
| | как это не работало и вдруг стало работать:) | |
|
|
|
|
|
|
|
для: sl1p
(21.10.2008 в 18:17)
| | т.е. если клацнуть по рубрикам на джаве-скрипте открываються подрубрики, если клацнуть на подрубрике - страница перегружаеться и тогда последняя рубрика чей номер к примеру 8 в то время когда остальные рубрики идут 1-6 остаеться открытым, т.е. все рубрики нормально работают за исключеним "паршивый овца" который всегда открыт | |
|
|
|
|
|
|
|
для: ronin
(21.10.2008 в 18:21)
| | не понял немного:\ | |
|
|
|
|
|
|
|
для: sl1p
(21.10.2008 в 18:24)
| | :) если клацнуть по рубрике на JS окрываються подрубрики данной рубрики, если клацнуть по другоу рубрике открытая закрывается, а нужная открывается, пока нет презагрузки страницы -все работает, но если я клацаю по подрубрику страница перезагружается, и как только я клацаю по рубрике №8, и после этого клацаю по любой другой рубрике - она, только она не закрывается | |
|
|
|
|
|
|
|
для: ronin
(21.10.2008 в 18:29)
| | function showInfo (id)
{
for (i=1; i<=<? echo $c?>; i++)if( getObj("sh_"+i)) getObj("sh_"+i).style.display = "none";
with(getObj(id).style){display=display=='none'?'block':'none';}
}
</script>
i<= | |
|
|
|
|
|
|
|
для: sl1p
(21.10.2008 в 18:30)
| | уф я наверно уже должен ящик пива, но нет изменений:) | |
|
|
|
|
|
|
|
для: ronin
(21.10.2008 в 18:36)
| | хм х3..
тоесть всего открывающихся приколов 8, а что пишет echo?
или может айди с нуля начинаются?:) | |
|
|
|
|
|
|
|
для: sl1p
(21.10.2008 в 18:37)
| | нет не 8, их 7: 1-6, семерки нет и 8 (а может быть №15, если удалить кучу рубрик),айли не с нуля. | |
|
|
|
|
|
|
|
для: ronin
(21.10.2008 в 18:43)
| | ну если echo пишет 8 тогда трабла быть не должно, по всей видимости он пишет 7 или 6 | |
|
|
|
|
|
|
|
для: sl1p
(21.10.2008 в 18:45)
| | пишет 8 :) все равно спасибо спасибо | |
|
|
|