04.01.2010, 22:33
|
Новичок на форуме
|
|
Регистрация: 04.01.2010
Сообщений: 3
|
|
Помогите упростить скрипт.
Сам я не пишу на яве, поэтому решил сразу обратится к опытным людям.
Задача такая - есть меню навигации, нужно что бы активные разделы (на котором находится пользователь) отображались другим стилем. Под руку попался такой скрипт, но он слишком громоздкий, помогите его упростить.
<script>
var a=location.href,b=0;
if(a.indexOf('/ins/s-chem-veniki.html')!=-1){
b=1;
document.write('<span class="nav-menu-content-a"><a href="#">- веники</a></span><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-kosmetika.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- косметика</a></span><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-prirodnaya-kosmetika.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- природная косметика</a></span><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-mocalki.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- мочалки</a></span><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-aromati-v-parnoj.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- ароматы в парной</a></span><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-ingridienti.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a></span><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- ингредиенты</a></span>');
}
if(b==0){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
</script>
Заранее благодарю за помощь.
|
|
05.01.2010, 00:48
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
это ж ппц как люди умудряются усложнять себе жинь просто. Нет слов
var a,i,url = ['veniki','kosmetika','prirodnaya-kosmetika','prirodnaya-kosmetika','mocalki','aromati-v-parnoj','ingridienti'],
m = ['веники','косметика','природная косметика','мочалки','ароматы в парной','ингредиенты'];
for (i=0;i<m.length;i++) document.write(((a=location.href.indexOf('/ins/s-chem-'+url[i]+'.html'))!=-1 ? '<span class="nav-menu-content-a">':'')+'<a href="#">- '+m[i]+'</a>'+(a!=-1 ? '</span>':'')+'<br>');
Последний раз редактировалось PeaceCoder, 05.01.2010 в 00:56.
|
|
05.01.2010, 03:36
|
Интересующийся
|
|
Регистрация: 05.01.2010
Сообщений: 28
|
|
можно как то так
Вообще такие вещи наверное не стоит делать на javascript, хотя я не знаю деталей вашего случая.
Я бы написал так:
var menuItems = {
'/ins/s-chem-veniki.html' : 'веники',
'/ins/s-chem-kosmetika.html' : 'косметика',
'/ins/s-chem-prirodnaya-kosmetika.html' : 'природная косметика',
'/ins/s-chem-mocalki.html' : 'мочалки',
'/ins/s-chem-aromati-v-parnoj.html' : 'ароматы в парной',
'/ins/s-chem-ingridienti.html' : 'ингредиенты'
};
var urlpath = document.location.pathname.toString();
var html = [];
for (var path in menuItems) {
var itemHtml = '<a href="'+ path +'">- '+ menuItems[path] +'</a>';
if (urlpath.indexOf(path) === 0) {
itemHtml = '<span class="nav-menu-content-a">'+ itemHtml +'</span>';
}
html.push(itemHtml);
}
html = html.join('<br/>');
document.write(html);
P.S. не называйте яваскрипт явой (даже для краткости)
|
|
05.01.2010, 12:42
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Michael83
|
if (urlpath.indexOf(path) === 0) {
|
а что будет, если перед /ins/ еще чето будет? ошибочка.
П.С. за оптимизацией не гнался, только минимизировал логику
|
|
05.01.2010, 12:46
|
Интересующийся
|
|
Регистрация: 05.01.2010
Сообщений: 28
|
|
Сообщение от PeaceCoder
|
а что будет, если перед /ins/ еще чето будет? ошибочка.
П.С. за оптимизацией не гнался, только минимизировал логику
|
да, не спорю, если эти пути не абсолютные, то конечно лучше написать >= 0 (или != -1). Мне показалось, что в этом случае они абсолютные, а если нет, то автор топика надеюсь разберется в коде и сам поправит.
|
|
05.01.2010, 12:52
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Сообщение от Michael83
|
Вообще такие вещи наверное не стоит делать на javascript
|
Ага. Особенно навигацию.
|
|
05.01.2010, 12:57
|
Новичок на форуме
|
|
Регистрация: 04.01.2010
Сообщений: 3
|
|
Огромное спасибо Вам за помощь, очень признателен! Простите, учту, яваскрипт так яваскрипт.
Сегодня постараюсь разобраться.
|
|
|
|