如题,有IE下正常,在FIREFOX下子菜单只显示一条线,子菜单显示是通过setTimeOut逐步展开的,可能这个效果在FIREFOX下有问题,大侠们帮忙看看下面的代码有没有FIREFOX不兼容的写法
function outinit(itemNo,dir,blockheight){ //缩小一个div的高度
  var subfiles=document.getElementById("item"+itemNo);
  if(blockheight==0){
subfiles.className="blockshow";
subfiles.style.height='';
blockheight=parseInt(subfiles.offsetHeight);
if(dir>0) subfiles.className="blockmove";
  }
  var outinspeed=blockheight/10;
  var nowheight=parseInt(subfiles.offsetHeight)+outinspeed*dir;
  if(nowheight<=0){
    subfiles.className="blockhide";
return;
  }else{
    subfiles.className="blockmove";
  }
  if(nowheight>=blockheight && dir>0){
    subfiles.className="blockshow";
subfiles.style.height='';
return;
  }
  subfiles.style.height=nowheight;
  subfiles.scrollTop=blockheight;
  parentsresize(subfiles);
  setTimeout("outinit("+itemNo+","+dir+","+blockheight+")",15);
}

解决方案 »

  1.   

      subfiles.style.height=nowheight;
    ==>
      subfiles.style.height=nowheight + "px";
      

  2.   

    subfiles.style.height=nowheight;
    ==>
      subfiles.style.height=nowheight + "px";setTimeout("outinit("+itemNo+","+dir+","+blockheight+")",15);
    ==》
    setTimeout(function(){outinit(itemNo,dir,blockheight);},15);
    setTimeout 传参要用匿名函数
      

  3.   

    呃,原来这么简单,加个"px"就行了><!
      

  4.   

    呵呵~~IE的方便是有害处的
    让人忘了W3C标准呢
    而且,这样做他是牺牲了浏览器性能来做的