从活动菜单项javascript开始

时间:2012-12-08 08:00:09

标签: javascript css

嗨,我是新手,不确定我是否正确这样做。

我使用的Javascript会在点击后装饰活动链接。 问题是,如何加载已经激活的菜单项之一的页面?

示例:http://moschalkx.nl/

Javascript代码:

function hlite_menu(obj){
    var lnk=document.getElementById('menu').getElementsByTagName('A');
    for(var i in lnk){
        lnk[i].className=(lnk[i]===obj)?'menu_active':'menu_idle';
    }
}

function set_menu(){
    var lnk=document.getElementById('menu').getElementsByTagName('A');
    for(var i in lnk){
        lnk[i].className='menu_idle';
        lnk[i].onclick=function(){
            hlite_menu(this);
        }
    }
}

window.onload=set_menu;

CSS:

a.menu_idle {color:#333333; text-decoration:none;}
a.menu_active {color:#333333; text-decoration:underline;}
a:visited {color:#333333; text-decoration:none;}
a:hover {color:#333333; text-decoration:underline;}

1 个答案:

答案 0 :(得分:0)

您已经拥有了hlist_menu函数,可以将特定链接设置为活动状态,因此我只需从您的set_menu函数中调用该函数即可开始使用哪个链接

function set_menu(){
    var lnk=document.getElementById('menu').getElementsByTagName('A');
    for(var i in lnk){
      lnk[i].className='menu_idle';lnk[i].onclick=function({hlite_menu(this);}}

      if (lnk[i] /* ??? how do you know whether this is the link to activeate up front? */ ) {
          hlist_menu(lnk[i]);
      }
    }

另外,这个

lnk[i].onclick=function({hlite_menu(this);}}

可以简化为

lnk[i].onclick = hlite_menu;

假设您将其更改为

function hlite_menu(){
    var lnk= document.getElementById('menu').getElementsByTagName('A');
    for(var i in lnk){
       lnk[i].className = (lnk[i] === this) ? 'menu_active':'menu_idle';
    }
}