Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите со скриптом (https://javascript.ru/forum/dom-window/7442-pomogite-so-skriptom.html)

Slavok47 01.02.2010 16:01

Помогите со скриптом
 
Имеется скрипт работы меню
<script type="text/javascript">   
     function loadmenu(node){
    var menu = document.getElementById('menu')
    var li = menu.getElementsByTagName('li')
        if(node.parentNode.className == ''){
            for(var i = 0; i<li.length;i++){
                li.item(i).className = ''
            }
            node.parentNode.className = 'active'
        } 
}        
      </script>

но при выполнении возвращается в исходное состояние, страница перегружается и все сбрасывается, что нужно исправить?

Slavok47 01.02.2010 16:58

для примера http://www.stil-master.ru/static/contacts.html

Gozar 01.02.2010 17:21

Цитата:

Сообщение от Slavok47 (Сообщение 43112)
но при выполнении возвращается в исходное состояние, страница перегружается и все сбрасывается, что нужно исправить?

Сохраняйте значение
node.parentNode.id
в куку и после загрузки меняйте класс элемента указанного в куке, будет работать у всех у кого включены куки, т.е. у большинства, остальные ничего не узнают.

Slavok47 01.02.2010 17:32

Цитата:

Сообщение от Gozar (Сообщение 43132)
Сохраняйте значение
node.parentNode.id
в куку и после загрузки меняйте класс элемента указанного в куке, будет работать у всех у кого включены куки, т.е. у большинства, остальные ничего не узнают.

А можно подробнее на примере?

Gozar 01.02.2010 17:56

document.cookie = 'id='+'menu2'//в вашем случае это node.parentNode.id;
var c = document.cookie;
alert(c);
:)

Slavok47 01.02.2010 18:02

Спасибо! но я все равно ни чего не понял:cray:

Gozar 01.02.2010 18:11

что-то вроде:
var id;
var c = document.cookie; //получаем куку
if(''!=c){
 id = (c.split('='))[1]; // возвращает правую часть (номер) из строки 'id=3' т.е. в данном случае 3 
}
else{
 id = false;
}
//если значение не пусто получаем значение id оно в массиве второе после применения split или присваиваем id false
if(false !== id){
document.getElementById('menu'+id).className = 'active';
}
document.cookie = 'id='+node.parentNode.id; //устанавливаем куку

Gozar 01.02.2010 18:20

Если после этого, все еще не понимаете, то почитайте что такое куки. И еще такой код работать будет только если кука одна иначе нужно модифицировать.

Gozar 01.02.2010 18:39

а для полного понимания:
//в document.cookie куки имеют такой вид:

имяКуки = значение; имяКуки2 = значение

 и т.д.


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