我用层模拟菜单,希望在鼠标移到上面时,高亮显示,移走恢复原来状态,这样做就出问题了,鼠标移开,菜单层就在初始化位置显示(就是设计层的地方),单击不在弹出,而是显示在初始位置,怎么回事呢???
我的代码是这样的:
function showmenuie5() { //单击显示菜单
var rightedge = document.body.clientWidth-event.clientX; 
var bottomedge = document.body.clientHeight-event.clientY; 
if (rightedge < ie5menu.offsetWidth) 
ie5menu.style.left = document.body.scrollLeft + event.clientX - ie5menu.offsetWidth; 
else 
ie5menu.style.left = document.body.scrollLeft + event.clientX; 
if (bottomedge < ie5menu.offsetHeight) 
ie5menu.style.top = document.body.scrollTop + event.clientY - ie5menu.offsetHeight; 
else 
ie5menu.style.top = document.body.scrollTop + event.clientY; 
ie5menu.style.visibility = "visible"; 
return false; 

function highlightie5()//高亮显示
{
if(event.srcElement.className="menus")
{
ie5menu.style.visibility = "visible";
event.srcElement.style.backgroundColor="highlight";
event.srcElement.style.color="white";}
}
/////////
function lowlightie5()//恢复原来状态
{
if(event.srcElement.className="menus")
{
ie5menu.style.visibility = "hidden";
event.srcElement.style.backgroundColor="";
event.srcElement.style.color="black";}
}
下面是模拟层:
<DIV id="ie5menu" class="skin1"  onmouseover="highlightie5()" onmouseout="lowlightie5()">
<div class="menus" onclick="kaimen()"><font size="1">aaaaaaaaaa</font></div>
<div class="menus" onclick="tongbu()"><font size="1">bbbbbbbbbbb</font></div>
         <hr>
<div class="menus" onclick="changkai()"><font size="1">ccccccccc</font></div>
<div class="menus" onclick="changbi()"><font size="1">dddddddddddd</font></div>
<div class="menus" onclick="zhengchang()"><font size="1">eeeeeeeeee</font></div>
<div class="menus" onclick="tongbu()"><font size="1">hhhhhhhhhhh</font></div>
</DIV>

解决方案 »

  1.   

    一般来讲,多数人很难有耐心看大把的代码来为你调错,而且多数代码又是不完整的,而且你的分数又没吸引力,这里的人多数都在泡星星我也没有耐心,我简单看了一下,没看见你的class的定义,所以估计也有可能问题出在这里,我记得想动态改变层的位置要求层的position属性为absolute值,还有几个值也可以,应该是inherit吧?记不清了,你的需要应该是position=absolute
      

  2.   

    我现在知道原因了:只要我加了下面这样的代码就会出现问题:
    if(event.srcElement.className="menuitems")
    这是为什么?请高手说一下嘛