2

嗨,我是新手,不确定我是否正确执行此操作。

我使用 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;}
4

1 回答 1

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';
    }
}
于 2012-12-08T08:04:21.950 回答