Avatar billede electrobeat_dk Nybegynder
28. marts 2007 - 14:59 Der er 1 kommentar og
1 løsning

menu virker ikke

Jeg har et frameset med to frames: 'frame_top', 'frame_main'

I 'frame_top" har jeg en menu som automatisk skal skifte alt efter hvilken side, som er åbnet i 'frame_main'.

script i 'frame_main':
--------------------------------
function menu_update()
{
    if(top.frame_top.loaded) top.frame_top.menu_shift('<?=$PAGE_ARR[0]?>');
    else setTimeout('menu_update()', 100);
}
menu_update();
--------------------------------

script i 'frame_top':
--------------------------------
<body onload="loaded = true">

var menu_curr;

function menu_shift(str)
{
    var menu_prev = menu_curr;
    menu_curr = str;
   
    if(menu_prev) menu_mouse(document.getElementById('menu_img['+menu_prev+']'), true);
   
    menu_mouse(document.getElementById('menu_img['+menu_curr+']'));
}

function menu_mouse(img, mout)
{
    var reg_exp = new RegExp(/\[(.+)\]/);
    var id_arr = reg_exp.exec(img.id);
   
    if(id_arr[1] != menu_curr)
    {
        var reg_exp2 = new RegExp(/(.+\/)(.+)/);
        var src_arr = reg_exp2.exec(img.src);
        var src2_arr = src_arr[2].split('.');
        var src3_arr = src2_arr[1].split('-');
       
        var str = src_arr[1]+src2_arr[0]+'.'+src3_arr[0];
        if(!mout) str += '-2';
        str += '.'+src2_arr[2];
       
        img.src = str;
    }
}

<a href="'.$value.'.php"><img id="menu_img['.$value.']" src="gfx/menu.'.$value.'.png" onmouseover="menu_mouse(this)" onmouseout="menu_mouse(this, true)" onclick="blur(this)"></a>
--------------------------------

Selve menuen virker egentlig som den skal. Når musen trækkes over en menuknap ændrer den sig, og ligeledes hvis en side med tilhøjrende menuknap er åbnet.

Men lige idet at man åbner framesettet er bliver det nye img ikke loadet ind i menuen, men hvis man trækker musen henover ændrer knappen sig ikke, så selve scriptet er blevet kørt bare at der ikke er loadet et andet img.src ind!?
Avatar billede electrobeat_dk Nybegynder
28. marts 2007 - 15:51 #1
Ændrer jeg min menu_shift() funktion til nedenstående, ændrer menuknappen med tilhørende åbnede side sig rigtig nok idet man åbner framesettet. Men når man trykker på en anden menuknap ændrer den forrige sig ikke til det oprindelige med mindre man trækker musen ind over

function menu_shift(str)
{
    if(menu_curr) menu_mouse(document.getElementById('menu_img['+menu_curr+']'));
   
    menu_mouse(document.getElementById('menu_img['+str+']'), true);
   
    menu_curr = str;
}
Avatar billede electrobeat_dk Nybegynder
28. marts 2007 - 20:18 #2
Jeg fandt løsningen. Menuen kan jo ikke ændres så længe menu_curr er sat :)

function menu_shift(str)
{
    var menu_prev = menu_curr;
    menu_curr = null;
   
    if(menu_prev) menu_mouse(document.getElementById('menu_img['+menu_prev+']'));
   
    menu_mouse(document.getElementById('menu_img['+str+']'), true);
   
    menu_curr = str;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester