Href在我的导航菜单栏列表中不起作用

href is not working in my nav menu bar list

本文关键字:列表 不起作用 菜单栏 导航 我的 Href      更新时间:2023-09-26

我似乎可以得到侧导航栏的链接。我觉得这可能和我的css有关。我一直试图解决这个问题在过去的1个小时,但我找不到问题在哪里。

    <nav id="nav" style="display: block;
            z-index: 0;
           -webkit-transition: none;
            transition: none;
            transition-property: none;
            transition-duration: initial;
            transition-timing-function: initial;
            transition-delay: initial" class="active">
            <div id="arrow"></div>
            <ul id="nav-menu-items">
            <li class="menu-item dark" id="DMIT" onmouseover="changetext();"onMouseOut="Defaulttext();"><a href="dmit.html">Diploma in MIT</a></li>
            <li class="menu-item" id="ECC" onmouseover="changetext1();" onMouseOut="Defaulttext1();"><a href="ECC.html">Diploma in ECC </a></li>
            <li class="menu-item dark" id="AAT" onmouseover="changetext2();" onMouseOut="Defaulttext2();" ><a href="AAT.html">Diploma in AAT</a></li>
            <li class="menu-item" id="ME" onmouseover="changetext3();" onMouseOut="Defaulttext3();" ><a href="Me.html">Diploma in ME</a> </li>
            <li class="menu-item dark"  id="TMT" onmouseover="changetext4();" onMouseOut="Defaulttext4();"   ><a href="TMT.html">Diploma in TMT</a> </li>
             <li class="menu-item pink" id="nav-choose"><img src="images/global/tri.png">     <br>
            Choose A Course</li>
    </ul> 

 </ul>
  </nav> 

这是我的CSS代码

#nav{
position: absolute;
top: 254px;
left: 320px;
cursor: pointer;
width: 118px;
z-index: 2;
-webkit-transition: all ease-out 0.6s;
-moz-transition: all 0.6s ease-out;
-o-transition: all 0.6s ease-out;
transition: all 0.6s ease-out;

}

#nav-menu-items {
       position: relative;
}
#nav-menu-items .menu-item a {
       display: block;
       color: #fff;
       text-decoration: none;
       text-align: center;
       line-height: 10px;
       font-weight: 200;
       padding: 8px 0px 9px 0px;

}
#nav .menu-item a:hover{
    color: #333;
    text-decoration: none;
    background-image: url(images/global/whitebox.jpg);
}
#nav .menu-item:hover{
    background-image: url(images/global/whitebox.jpg);
}
javascript代码

  function changetext()
{
var id=document.getElementById("DMIT"); 
id.style.color="black";
id.style.textAlign="center";
id.innerHTML="Diploma in Multimedia & infocomm Technology ";

}
function Defaulttext()
{
var id=document.getElementById("DMIT"); 
id.style.color="white";
id.style.textAlign="center";
id.innerHTML="Diploma in MIT ";
}
//ecc hover
 function changetext1()
{
var id1=document.getElementById("ECC");
id1.style.color="black";
id1.style.textAlign="center";
id1.innerHTML="Diploma in Electronics, Computer & Communications ";
}
function Defaulttext1()
{
var id1=document.getElementById("ECC");
id1.style.color="white";
id1.style.textAlign="center";
id1.innerHTML="Diploma in ECC ";
}
//AAT hover
function changetext2()
{
var id=document.getElementById("AAT"); 
id.style.color="black";
id.style.textAlign="center";
id.innerHTML="Diploma in Aeronautical & Aerospace Technology";
}
function Defaulttext2()
{
var id=document.getElementById("AAT"); 
id.style.color="white";
id.style.textAlign="center";
id.innerHTML="Diploma in AAT ";
} 
function changetext3()
{
var id=document.getElementById("ME"); 
id.style.color="black";
id.style.textAlign="center";
id.innerHTML="Diploma in Mechatronics Engineering  ";
}
function Defaulttext3()
{
var id=document.getElementById("ME"); 
id.style.color="white";
id.style.textAlign="center";
id.innerHTML="Diploma in ME ";
} 
function changetext4()
{
var id=document.getElementById("TMT"); 
id.style.color="black";
id.style.textAlign="center";
id.innerHTML="Diploma in Telematics & Media Technology  ";
}
function Defaulttext4()
{
var id=document.getElementById("TMT"); 
id.style.color="white";
id.style.textAlign="center";
id.innerHTML="Diploma in TMT ";
} 

问题是您的鼠标悬停函数改变了li元素的innerHTML,并将其中的a元素替换为简单的文本

的例子:

你需要首先获得a元素(当前元素的所有子元素在children对象中可用;注意IE <=8,它将在children中包含注释节点)

所以,在changetext()函数中,你应该添加
var _link = id.children[0];

而不是

id.innerHTML="Diploma in Multimedia & infocomm Technology ";

你应该有

_link.innerHTML="Diploma in Multimedia & infocomm Technology ";

您需要对Defaulttext()函数(以及其他函数)进行类似的更改

添加....

id.firstElementChild.innerHTML = "Diploma in TMT ";

当您重写innerHTML

时,您正在删除A标签。