I moje pytanie: podobno w zmiennej "aktualny_p" przechowywana jest informacja, które menu powinno byc wysunięte. Co z tego jak posłużę się ciasteczkami i to zapamiętam, skoro i tak jak ręcznie przestawie wartość np. na 1, 2, 3 itd., to i tak wysunięte jest menu z numerem 1?
Mój kod wygląda nieco inaczej, bo zrobiłem to w pionie:
Kod
window.addEvent("load",function(){
var tab_p = $$(".podmenu");
var aktualny_p = 5;
var tab_e = [];
$$(".menu").each(function(element,index) {
var slider = new Fx.Slide(tab_p[index],{mode: "vertical",wait: false});
tab_e[index] = slider;
if(index > 0){
tab_p[index].setStyle("display","block");
slider.hide();
}
element.addEvent("click",function() {
if(aktualny_p !== index){
tab_e[aktualny_p].slideOut();
aktualny_p = index;
tab_e[index].slideIn();
}
});
});
});
var tab_p = $$(".podmenu");
var aktualny_p = 5;
var tab_e = [];
$$(".menu").each(function(element,index) {
var slider = new Fx.Slide(tab_p[index],{mode: "vertical",wait: false});
tab_e[index] = slider;
if(index > 0){
tab_p[index].setStyle("display","block");
slider.hide();
}
element.addEvent("click",function() {
if(aktualny_p !== index){
tab_e[aktualny_p].slideOut();
aktualny_p = index;
tab_e[index].slideIn();
}
});
});
});
Kod HTML wygląda praktycznie tak samo jak w przykładzie na podanej przeze mnie stronie
Z tym że CSSy mogą się minimalnie różnić ze względu na moje PIONOWE menu. W moim kodzie nie ma błędów ponieważ próbowałem to samo zrobić na przykładzie podanym na stronie powyżej...
Co robię źle?
EDIT: Zmieniłem coś takiego:
Kod
if(index != 2){
tab_p[index].setStyle("display","block");
slider.hide();
}
tab_p[index].setStyle("display","block");
slider.hide();
}
I wprawdzie wszystkie podmenu są schowane z wyjątkiem 3-go (tablice liczone są od zera), ale po wysunięciu innego menu nie chowa się to trzecie. A z kolei po kliknięciu na trzecie, a następnie przy wysuwaniu innego, już się chowa tamto. Kurcze, nie pogubiłem się już w kodzie zupełnie...
EDIT 2: UDAŁO SIĘ
Zrobiłem to tak, mniej więcej chodziło mi o taki efekt
Kod
window.addEvent("load",function(){
var tab_p = $$(".podmenu");
if(Cookie.get('actual')) {
var aktualny_p = Cookie.get('actual');
} else {
var aktualny_p = 0;
}
var tab_e = [];
$$(".menu").each(function(element,index) {
var slider = new Fx.Slide(tab_p[index],{mode: "vertical",wait: false});
tab_e[index] = slider;
if(index != aktualny_p){
tab_p[index].setStyle("display","block");
slider.hide();
}
element.addEvent("click",function() {
Cookie.set('actual', index, {duration: 0.1,path: "/"});
if(aktualny_p !== index){
tab_e[aktualny_p].slideOut();
aktualny_p = index;
tab_e[index].slideIn();
}
});
});
});
var tab_p = $$(".podmenu");
if(Cookie.get('actual')) {
var aktualny_p = Cookie.get('actual');
} else {
var aktualny_p = 0;
}
var tab_e = [];
$$(".menu").each(function(element,index) {
var slider = new Fx.Slide(tab_p[index],{mode: "vertical",wait: false});
tab_e[index] = slider;
if(index != aktualny_p){
tab_p[index].setStyle("display","block");
slider.hide();
}
element.addEvent("click",function() {
Cookie.set('actual', index, {duration: 0.1,path: "/"});
if(aktualny_p !== index){
tab_e[aktualny_p].slideOut();
aktualny_p = index;
tab_e[index].slideIn();
}
});
});
});
Otóż przy każdym kliknięciu na kategorię ustawiane jest ciasteczko z indexem otwartej kategorii. A na początku jest warunek sprawdzający, czy ciasteczko istnieje, bo przy pierwszym otwarciu strony musi być wysunięta pierwsza kategoria (po else ustawiana jest wartość aktualnie otwartej kategorii na 0).
Dziękuję wszystkim za... chęć pomocy i czytanie moich wypocin

Pozdrawiam
