Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подменю на сайте, можно ли как-нибудь упрастить код? (https://javascript.ru/forum/misc/3045-podmenyu-na-sajjte-mozhno-li-kak-nibud-uprastit-kod.html)

Shanks 13.03.2009 08:17

Подменю на сайте, можно ли как-нибудь упрастить код?
 
Цель сделать, чтобы при нахождения юзера на сайте, автоматом подсвечивался раздел, в котором он находится, раздел определяется и подсвечивается из названия страницы, код следующий:

<script>
function load()
{
if (window.location.href.indexOf("page-game-n")!= -1)
{
document.getElementById("page-game-n").className = "select_link";
}
}
</script>

Получается, если писать это к каждой ссылки, выйдет довольно длинный скрипт. Возможно ли так сделать, чтобы скрипт автоматом сверял ID каждой ссылки на странице, и если хоть один ID совпадал с названием текущей страницы, то раздел подсвечивался?

Gvozd 13.03.2009 11:09

ссылки расположены одним блоком?
допустим у вас код вроде этого
<div id="link_block">
<a href="" id="page-game-0">qwe</a>
<a href="" id="page-game-1">qwe</a>
<a href="" id="page-game-2">qwe</a>
<a href="" id="page-game-3">qwe</a>
</div>

тогда код может быть например таким:
function load()
{
links=document.getElementById("link_block").getElementsByTagName('a');
for(i=0,s=links.length;i<s;i++)
{
id=links[i].id;
if (window.location.href.indexOf(id)!= -1)
{
links[i].className = "select_link";
}
}
}

Shanks 13.03.2009 16:01

Отлично решение! спасибо за оптимизацию!

Gvozd 13.03.2009 16:03

подалуйста

Shanks 16.03.2009 04:04

И еще один момент, скрипт работает по событию <body onLoad="load()">
Как перенести его запуск по событию onLoad в секции <script>?
window.onLoad = load(); что-то не работает.

Gvozd 16.03.2009 07:03

Цитата:

Сообщение от Shanks
window.onLoad = load(); что-то не работает.

Регистр имеет значение
window.onLoad = load();//неправильно
window.onload = load();//правильно


Цитата:

Сообщение от Shanks
Как перенести его запуск по событию onLoad в секции <script>?

расположите тег <script> после своего меню в HTML-разметке


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