日期:2014-05-16  浏览次数:20379 次

使用js实现下拉菜单功能,但在firefox浏览器上无法体现
我使用js实现下拉菜单功能,在ie上使用正常,但在firefox上无法实现当鼠标移开后隐藏菜单的功能。
我实现隐藏功能的函数是这样的:
  function judgeMenu()
  {
  //当前1级菜单名
  var theShowMenu = "mnu" + theShowMenuIndex;
  //当前2级菜单名
  var theShowSubMenu = "submnu" + theShowMenuIndex;
  //获得菜单的左、右、上、下的边界值
var theX1 = parseInt(document.getElementById(theShowSubMenu).style.left);
var theX2 = theX1 + document.getElementById(theShowSubMenu).clientWidth;
var theY1 = parseInt(document.getElementById(theShowMenu ).style.top);
var theY2 = parseInt(document.getElementById(theShowSubMenu ).style.top) + document.getElementById(theShowSubMenu).clientHeight;
  //当鼠标在菜单范围以外,隐藏2级菜单
if (event.clientX < theX1 || event.clientX > theX2 || event.clientY < theY1 || event.clientY > theY2 )
{
  for (i=1;i<=7;i++)
{
subMenu = "submnu" + i;
document.getElementById(subMenu).style.visibility = "hidden";
}  
}
  }
我各个id没有重复。请问是什么原因,谢谢。

------解决方案--------------------
event.clientX 

IE专用
------解决方案--------------------
把event作为参数传递到函数中

JScript code
function judgeMenu(e) 
{
  e=e||event;//这样取事件对象,访问时使用变量e就可以了
}